问题描述
我是开发 .Net MVC 5 应用程序的初学者.但是我在使用 Jquery 将数组或对象传递给控制器时遇到了一些问题.
我正在添加带有按钮的动态输入字段.我想将输入的数据传递给控制器.但我没能成功.
Html Section就是这样;
<div id="TextBoxDiv1"><label>Textbox #1 : </label><input type='text' id='textbox1'>
我是开发 .Net MVC 5 应用程序的初学者.但是我在使用 Jquery 将数组或对象传递给控制器时遇到了一些问题.
我正在添加带有按钮的动态输入字段.我想将输入的数据传递给控制器.但我没能成功.
Html Section就是这样;
<div id="TextBoxDiv1"><label>Textbox #1 : </label><input type='text' id='textbox1'>
<input type='button' value='Add Button' id='addButton'><input type='button' value='Remove Button' id='removeButton'><input type='button' value='Get TextBox Value' id='getButtonValue'>
Get Value 按钮功能就是这样;
$("#getButtonValue").click(function () {var list = new Array();for (i = 1; i < counter; i++) {list[i] = $('#textbox' + i).val();警报(列表[i]);}var postData = { 值:列表 };$.ajax({类型:POST",url: "/Surveys/PostQuestionAndOptions",数据:postData,成功:功能(数据){警报(数据);},数据类型:json",传统:真实});});
即使我将 "traditional" 设置为 true ,模型也是空的.
[HttpPost]公共 JsonResult PostQuestionAndOptions(string[] 模型){返回 Json(true);}
谁能帮帮我?谢谢.
您需要有一个强类型对象.
JavaScript
$("#getButtonValue").click(function (e) {e.preventDefault();变量列表 = [];for (var i = 1; i < counter; i++) {list.push($('#textbox' + i).val());}var postData = { 值:列表 };$.ajax({类型:POST",url: "/Surveys/PostQuestionAndOptions",数据:postData,成功:功能(数据){警报(数据);},数据类型:json",传统:真实});});
强类型对象
public MyValues {公共列表值{得到;放;}}
控制器方法
[HttpPost]公共 JsonResult PostQuestionAndOptions(MyValues 模型) {返回 Json(true, JsonRequestBehavior.AllowGet);}
I am beginner to develope .Net MVC 5 application. But I have some problem with passing array or object to controller with Jquery.
I'm adding dynamically input fields with button. I want to pass input's data to controller. But I couldn't succeed.
Html Section is like that;
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
<label>Textbox #1 : </label><input type='text' id='textbox1'>
</div>
</div>
<input type='button' value='Add Button' id='addButton'>
<input type='button' value='Remove Button' id='removeButton'>
<input type='button' value='Get TextBox Value' id='getButtonValue'>
Get Value button function is like that;
$("#getButtonValue").click(function () {
var list = new Array();
for (i = 1; i < counter; i++) {
list[i] = $('#textbox' + i).val();
alert(list[i]);
}
var postData = { values: list };
$.ajax({
type: "POST",
url: "/Surveys/PostQuestionAndOptions",
data: postData,
success: function (data) {
alert(data);
},
dataType: "json",
traditional: true
});
});
Even I set "traditional" by true , the model is null.
[HttpPost]
public JsonResult PostQuestionAndOptions(string[] model)
{
return Json(true);
}
Could any one help me ? Thank you.
You need to have a strongly typed object.
JavaScript
$("#getButtonValue").click(function (e) {
e.preventDefault();
var list = [];
for (var i = 1; i < counter; i++) {
list.push($('#textbox' + i).val());
}
var postData = { values: list };
$.ajax({
type: "POST",
url: "/Surveys/PostQuestionAndOptions",
data: postData,
success: function (data) {
alert(data);
},
dataType: "json",
traditional: true
});
});
Strongly typed object
public MyValues {
public list<string> values {get; set;}
}
Controller method
[HttpPost]
public JsonResult PostQuestionAndOptions(MyValues model) {
return Json(true, JsonRequestBehavior.AllowGet);
}
这篇关于如何使用 Jquery 将数组传递给 MVC 控制器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!