发送到排序操作的Kendo UI参数为null

时间:2014-03-27 06:55:46

标签: c# asp.net-mvc kendo-grid

我使用C#MVC包装器定义了一个Kendo 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,有没有理由为什么排序不会发送所有参数?

1 个答案:

答案 0 :(得分:0)

嗨,您必须从()中移除.Data("getRequestData")才能正常工作。

.Read(read =>
{
 read.Action("Read", "MyData").Type(HttpVerbs.Post).Data("getRequestData"));
})