【发布时间】:2013-12-29 19:31:00
【问题描述】:
我最近购买了 Kendo 订阅,我无法让 AJAX 绑定网格按预期运行,希望这里有人能提供帮助。
我已经按照剑道文档教程@http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/ajax-binding 并且可以让 AJAX 绑定正常工作。
我现在尝试将它实现到现有的 MVC 解决方案中,并且每当我单击“新建”或“编辑”命令按钮时,我会收到一个 JSON 字符串返回到浏览器。与问题类似 (JSON data to KENDO UI Grid ASP.NET MVC 4) 但该问题的答案对我不起作用。
这是我的控制器代码...
public ActionResult Index()
{
// non-important code removed here //
var viewModel = newReferenceViewModel();
ViewBag.TradeReferences = TradeReferenceWorker.Get(applicationId);
return View(viewModel);
}
public ActionResult TradeReferences_Read([DataSourceRequest]DataSourceRequest request)
{
var applicationId = GetCurrentApplicationId();
DataSourceResult result = TradeReferenceWorker.Get(applicationId).ToDataSourceResult(request);
return Json(result, "text/x-json", JsonRequestBehavior.AllowGet);
}
还有视图....
@(Html.Kendo().Grid((IEnumerable<TradeReference>)ViewBag.TradeReferences)
.Name("gridTradeReference")
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(tradeReference => tradeReference.TradeReferenceId);
model.Field(tradeReference => tradeReference.TradeReferenceId).Editable(false);
})
.Read(read => read.Action("TradeReferences_Read", "References"))
.Create(create => create.Action("TradeReference_Create", "References"))
.Update(update => update.Action("TradeReference_Update", "References"))
.Destroy(destroy => destroy.Action("TradeReference_Destroy", "References"))
)
.Columns(columns =>
{
columns.Bound(tref => tref.TradeReferenceId).Visible(false);
columns.Bound(tref => tref.Name);
columns.Bound(tref => tref.Phone);
columns.Command(commands =>
{
commands.Edit();
commands.Destroy();
}).Title("").Width(200);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Sortable()
)
总而言之... Grid 将在第一次完美加载。我没有在编辑/删除操作上连接任何东西,只是试图让创建操作。单击“添加新”,甚至单击“编辑”将使浏览器简单地将 Json 显示到屏幕上。
希望这很简单 - 在此先感谢
【问题讨论】:
标签: ajax asp.net-mvc json kendo-grid