将数组值从视图传递给控制器使用ajax
我在我的视图中有一个表单page.it包含5个文本框,一个搜索按钮。用户在文本框中输入值(输入所有字段不是必需的),然后单击搜索按钮,我必须将其存储在数组中并将其传递给控制器,并且根据搜索结果,我必须显示搜索结果。将数组值从视图传递给控制器使用ajax
我能够将搜索到的值存储在数组中,现在我想如何将此数组传递给控制器以及如何在控制器中访问这些值。
使用ajax。如果jQuery是一个选项,你可以写这样的事情
$(form).submit(function()
{
var ;
$.ajax({
type: "POST",
url: "/Controller/Action",
data: JSON.stringify(_yourArrayObject),
success: function(data){
alert(data.Result);
},
dataType: "json"
});
})
何塞称,您的要求可能是这样的:
$("#submit").click(function() {
var searchData = new Array();
$(".search-input").each(function() {
searchData.push($(this).attr('value'));
});
$.ajax({
type: "POST",
url: "/Home/Index",
data: {"searchData" : searchData},
success: function (data) {
// do something on success
},
traditional: true,
dataType: "json"
});
return false;
});
和你的控制器动作可能是:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index([Bind(Prefix="searchData")] List<string> searchData)
{
return Index();
}
和你的表格必须有这样的标记:
<form id="myform">
<input type="text" class='search-input' />
<input type="text" class='search-input' />
<input type="text" class='search-input' />
<input type="text" class='search-input' />
<input type="submit" id="submit" />
</form>
我已经以这种方式实现了,我在我的控制器中使用了foreach循环来输入值为空或不是。当我在文本框中输入一个值并且点击搜索按钮,在foreach按钮处抛出NullReference Exception。 – steve 2012-08-03 11:37:01
我编辑了code.it工程100%perfect.please检查。 – 2012-08-03 13:55:51
不要忘记标记为答案,如果是的话。 – 2012-08-17 05:55:45
将表单动作指向您的控制器的一个动作。 – jose 2012-08-03 10:54:06
感谢您的答复,如何将这些数组值从视图传递到控制器 – steve 2012-08-03 10:56:51