Kendo UI Window.refresh({data})未正确传递给ASP.Net MVC操作

时间:2015-03-19 15:53:41

标签: jquery asp.net-mvc kendo-ui kendo-asp.net-mvc kendo-window

我有一个窗口:

@(Html.Kendo().Window()
   .Name("wndInvoiceLineEditor")
   .Title("Invoice Line Item Editor")
   .Content("loading dialog...")
   .Height(350)
   .Width(785)
   .LoadContentFrom("InvoiceLineItemEditor", "Invoice", new { LineItemId = "Initial" })
   .Draggable()
   .Resizable()
   .Visible(false)
)

我需要能够重新加载该部分视图,并在运行时传递不同的数据。据我在文档中读到,我应该可以这样做:

$("#wndInvoiceLineEditor").data("kendoWindow").refresh({
   data: {
      LineItemId: $($(".k-state-selected td")[0]).text()
   }
});

然而动作服务器端:

public ActionResult InvoiceLineItemEditor(string LineItemId)
{
   int id = 0;
   if(string.IsNullOrEmpty(LineItemId) || !int.TryParse(LineItemId, out id))
   { 
      return PartialView("InvoiceLineItemEditorPartial", new InvoiceLineItem());
   }

   ...blah blah blah

...没有收到正确的ID(从表中获取它的jquery工作,已通过Chrome控制台测试)

相反,它接收视图中配置的数据:“Initial”。

我错过了什么吗?如何将数据发送回操作,以便我可以使用正确的信息加载该部分?

答案:

问题是在视图中窗口初始化的LoadContentFrom部分中设置了默认数据。将其更改为:

@(Html.Kendo().Window()
   .Name("wndInvoiceLineEditor")
   .Title("Invoice Line Item Editor")
   .Content("loading dialog...")
   .Height(350)
   .Width(785)
   .LoadContentFrom("InvoiceLineItemEditor", "Invoice")
   .Draggable()
   .Resizable()
   .Visible(false)
)

...解决了这个问题。窗口似乎是不可移动的,设置为默认值。

1 个答案:

答案 0 :(得分:1)

问题是在视图中窗口初始化的LoadContentFrom部分中设置了默认数据。将其更改为:

@(Html.Kendo().Window()
   .Name("wndInvoiceLineEditor")
   .Title("Invoice Line Item Editor")
   .Content("loading dialog...")
   .Height(350)
   .Width(785)
   .LoadContentFrom("InvoiceLineItemEditor", "Invoice")
   .Draggable()
   .Resizable()
   .Visible(false)
)

...解决了这个问题。窗口似乎是不可移动的,设置为默认值。