在MVC中,模型绑定器可以将来自客户端请求的表单数据绑定到控制器操作中的参数中。
就我而言,它使用简单数据,例如draw
,start
和length
。
如果我想用" []"绑定一些内容,我需要写什么?像search[value]
一样?
我的客户代码:
$(document).ready(function () {
var url = '@Url.Action("GetJsonData", "Home")';
$('#example').dataTable({
"searching" : true,
"processing": true,
"serverSide": true,
"ajax": {
"url": url,
"type": "POST"
},
"columns": [
{ "data": "id", "searchable": true },
{ "data": "name", "searchable": true }
]
});
});
我的服务器代码:
public JsonResult GetJsonData(string draw, int start, int length, string search)
{
}
更新1:
我设法以这种方式获取数据,但我仍然认为这项工作应该由模型绑定器处理。
public JsonResult GetJsonData(string draw, int start, int length)
{
var mySearcArray = Request.Form.GetValues("search[value]");
var mySearch = string.Empty;
if (mySearcArray != null)
{
if (!string.IsNullOrEmpty(mySearcArray[0]))
{
mySearch = mySearcArray[0];
}
}
}
更新2 啊,Default ModelBinder只适用于公共属性,这就是为什么" magic"发生了什么事。所以看起来你有两个选择。 Request.Form.GetValues(" search [value]");或者制作自定义的ModelBinder。