Razor 剑道UI MVC,使用数据方法查看附加数据不工作

Razor 剑道UI MVC,使用数据方法查看附加数据不工作,razor,kendo-ui,kendo-grid,kendo-asp.net-mvc,Razor,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我在razor视图中有以下剑道网格 @(Html.Kendo().Grid<PO>() .Name("manualMatchGrid") .Columns(columns => { BindFields(columns); }) .Selectable(s => s.Mode(GridSelectionMode.Multiple)) .Pageable() .Sortable() .Dat

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

@(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()
)

我发现了问题。问题是读取方法默认使用POST。我添加了TypeHttpVerbs.Get,它运行得很好

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

请把服务器端的代码也发出来,我刚刚发了。但问题是,它甚至没有进入ReadInvoicePOs操作,因为需要clientId。只允许字符串类型。在json请求中..将您的参数类型更改为仅字符串..稍后转换它们..这应该可以工作,然后我实际将随机数作为占位符,我使用jQuery从控件读取值,因此我实际传递字符串。但我已经解决了问题。看看我的答案。无论如何,谢谢。如果可以的话,这没关系。至于记录,您的读取方法应该适用于GET和POST方法,因为您没有在读取方法的顶部定义[AcceptVerbsHttpVerbs.GET]或[AcceptVerbShtPverbs.POST]标记。所以它接受了这两个动词…奇怪的是它只适用于GETI实际上使用了[AcceptVerbsHttpVerbs.Get]。我只是忘了复制那部分。我明白你的意思,这肯定是问题所在,因为我以前在另一个应用程序中成功地使用过它。
[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);
    }
.Read(read => read.Action("ReadInvoicePOs", "Invoice", new { invoiceID = ViewBag.InvoiceID }).Data("getInvoicePOsFilterData").Type(HttpVerbs.Get))