我的视图页面中有一个表单。它包含 5 个文本框,一个搜索按钮。当用户在文本框中输入值(输入所有字段不是强制性的)并单击搜索按钮时,我必须将值存储在数组并将其传递给控制器,根据搜索结果,我必须显示那些搜索记录的结果。
我能够将搜索到的值存储在一个数组中,现在我想如何将此数组传递给控制器以及如何在控制器中访问这些值。
我的视图页面中有一个表单。它包含 5 个文本框,一个搜索按钮。当用户在文本框中输入值(输入所有字段不是强制性的)并单击搜索按钮时,我必须将值存储在数组并将其传递给控制器,根据搜索结果,我必须显示那些搜索记录的结果。
我能够将搜索到的值存储在一个数组中,现在我想如何将此数组传递给控制器以及如何在控制器中访问这些值。
正如 Jose 所说,您的请求可能如下所示:
$("#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>
使用阿贾克斯。如果 jQuery 是一个选项,你可以写这样的东西
$(form).submit(function()
{
var ;
$.ajax({
type: "POST",
url: "/Controller/Action",
data: JSON.stringify(_yourArrayObject),
success: function(data){
alert(data.Result);
},
dataType: "json"
});
})