【问题标题】:Kendo UI MVC, Grid View additional data using Data method not workingKendo UI MVC,网格使用数据方法查看附加数据不起作用
【发布时间】:2014-12-05 10:20:52
【问题描述】:

我在剃刀视图中有以下剑道网格

@(Html.Kendo().Grid<PO>()
  .Name("manualMatchGrid")
  .Columns(columns =>
      {
          BindFields(columns);
      })
    .Selectable(s => s.Mode(GridSelectionMode.Multiple))
    .Pageable()
    .Sortable()
    .DataSource(dataSource =>
        dataSource.Ajax()
            .Batch(true)
            .PageSize(20)
            .ServerOperation(false)
            .Model(model =>
            {
                model.Id(l => l.Id);
            })
            .Read(read => read.Action("ReadInvoicePOs", "Invoice", new { invoiceID = ViewBag.InvoiceID }).Data("getInvoicePOsFilterData"))
    )
    .Pageable()
    .Navigatable()
)

还有 getInvoicePOsFilterData javascript 函数...

<script>
function getInvoicePOsFilterData() {
    return {
        pONumber: $('#PONumber').val(), vendorId: $('#VendorId').val(), clientId: $('#ClientId').val()
    };
}
</script>

查看 chrome 网络检查器...

Data InvoiceId,即 routeData,没有发送任何内容。我错过了什么。

编辑:

控制器...

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult ReadInvoicePOs([DataSourceRequest]DataSourceRequest request, int invoiceId, string pONumber, int? vendorId, int clientId)
    {
        var pOs = dynamicPOManager.GetPOs(invoiceId, clientId, pONumber);

        DataSourceResult result = pOs.ToDataSourceResult(request);
        return Json(result, JsonRequestBehavior.AllowGet);
    }

【问题讨论】:

  • 请同时发布服务器端代码..
  • 我刚做了。但问题是,它甚至没有进入 ReadInvoicePOs 操作,因为需要 clientId。
  • 只允许使用字符串类型。在json请求中..将您的参数类型更改为仅字符串..稍后将它们转换...然后应该可以工作
  • 我实际上将随机数作为占位符,我使用 jQuery 从控件中读取值,因此我实际上传递了字符串。但我已经弄清楚了问题所在。看看我的回答。还是谢谢你

标签: razor kendo-ui kendo-grid kendo-asp.net-mvc


【解决方案1】:

我发现了问题。问题是 POST 是读取方法的默认设置。我添加了“Type(HttpVerbs.Get)”,效果很好。

.Read(read => read.Action("ReadInvoicePOs", "Invoice", new { invoiceID = ViewBag.InvoiceID }).Data("getInvoicePOsFilterData").Type(HttpVerbs.Get))

【讨论】:

  • 如果它可以工作就可以了......至于记录,您的读取方法应该适用于 GET 和 POST 方法,因为您没有定义 [AcceptVerbs(HttpVerbs.GET)] 或 [AcceptVerbs(HttpVerbs .Post)] 标记在读取方法的顶部。所以它接受两个动词......奇怪它只适用于 GET
  • 我确实使用了 [AcceptVerbs(HttpVerbs.Get)]。我只是忘了复制那部分。我明白你的意思了,这绝对是问题所在,因为我之前已经在另一个应用程序中成功使用过它。
猜你喜欢
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
相关资源
最近更新 更多