发送给排序动作的参数为空
本文关键字:参数 排序 | 更新日期: 2023-09-27 17:53:45
我有一个使用c# MVC包装器定义的剑道UI网格。当我单击列标题进行排序时,它似乎调用了我定义的read
操作:
//index.cshtml
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => ...)
.Read(read =>
{
read.Action("Read", "MyData").Type(HttpVerbs.Post).Data("getRequestData()"));
})
//MyDataController.cs
public ActionResult Read([DataSourceRequest] DataSourceRequest request, string p1, string p2, string p3, string p4)
在搜索时,它不调用getRequestData
,并且由于某些原因,有些参数为空,而有些不是。
//MyPage.js
function getRequestData() {
return {
p1: $("#p1").val(),
p2: $("#p2").val(),
p3: $("#p3").val(),
p4: $("#p4").val()
};
};
似乎我可以使用parameterMap并检查类型以确保在排序时发送数据:
parameterMap: function(data, type) {
if (type == "sort") {
return getRequestData();
}
}
但是所有使用parameterMap
的例子都是在使用JavaScript定义网格时,而不是c#包装器。
我应该使用parameterMap
,如果是这样,如何使用它,如果我的网格是使用包装器定义的?如果我不能使用parameterMap
,排序不发送所有参数的原因是什么?
你必须从.Data("getRequestData")
中删除()
,它才能工作。
.Read(read =>
{
read.Action("Read", "MyData").Type(HttpVerbs.Post).Data("getRequestData"));
})