我正在使用JQuery DataTables进行服务器端处理,我正在尝试将部分查询字符串请求映射到我的操作中的对象。此查询字符串请求来自由datatables
处理的AJAX调用对于请求中的第一列(已解码),查询字符串参数如下所示:
order[0][column]:0
order[0][dir]:asc
在我的控制器中,我有这个动作:
[HttpGet]
public JsonNetResult Employees(int start, int length, int draw, Sort[] order)
我有一个看起来像这样的排序类:
public class Sort
{
public int column { get; set; }
public string dir { get; set; }
}
在发出请求时会填充订单数组,并显示它在集合中有1个项目。但是,column属性始终为0,dir始终为null。我缺少什么以便填充这些字段?
修改
我可以轻松地检索我喜欢的值:
var result = Request.QueryString["order[0][dir]"];
但是,如果有可能的话,我正在寻找模型绑定吗?
答案 0 :(得分:0)
如果您使用mvc,请尝试将此方法替换为:
OLD
public JsonNetResult Employees(int start, int length, int draw, Sort[] order)
NEW
public JsonNetResult Employees(formCollection form)
{
Employees e = new Employees();
TryUpdateModel<Employees>(e, form);
}
答案 1 :(得分:0)
适用于我,我使用此代码:
类ViewModel
public class DocumentViewModel
{
public int Id { get; set; }
public string Number { get; set; }
public int EmissionDate { get; set; }
public int Institute { get; set; }
public string MaturityDate { get; set; }
}
<强> HTML 强>
@using(Html.BeginForm("About", "Home", FormMethod.Post, new { @id = "testform" }))
{
<input type="text" name="Number" />
<input type="text" name="EmissionDate" />
<input type="text" name="MaturityDate" />
<input type="submit" id="send" value="Enviar" />
}
<强> Jquery的强>
<script type="text/javascript">
$(function () {
$("#send").click(function (event) {
event.preventDefault();
console.log($("#testform").serialize());
$.post("@Url.Content("~/Home/About")", $("#testform").serialize())
.done(function (data) {
alert("Data Loaded: " + data);
});
});
});
</script>
试试此代码