Kendo Grid编辑命令未到达控制器

时间:2017-06-30 17:30:45

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

有人可以帮助解答我的问题: 剑道网格中的编辑命令没有到达我的控制器。 我错过了什么吗?

@(Html.Kendo().Grid<WEEKLY_ORDERS_LINES>()
        .Name("orderDetails_edit" + Model.OrderID)
        .Columns(columns =>
        {
            columns.Bound(e => e.ID).Hidden(true);
            columns.Bound(e => e.INGRED_NAME).Title("Ingredient Name").Width(120).HeaderHtmlAttributes(new { style = "text-align: center;" }).HtmlAttributes(new { style = "text-align: center;" });
            columns.Command(command => { command.Edit(); }).Width(60);
        })
        .Editable(e => e.Mode(GridEditMode.InLine))
        .DataSource(dataSource => dataSource
        .Ajax()
        .Sort(sort => sort.Add("INGRED_NAME").Ascending())
        .Model(model =>
        {
            model.Id(p => p.ID);
            model.Field(p => p.ID).DefaultValue(new Guid());
            model.Field(f => f.INGRED_NAME).Editable(true);
        })
        .Update(update => update.Action("Update", "Food"))
        .Read(read => read.Action("Read", "Food").Data("additionalInfo"))
        )
        .Events(events => events.Cancel("refreshView"))
)

我的控制器是这样的:

public ActionResult Update([DataSourceRequest] DataSourceRequest request, WEEKLY_ORDERS_LINES model)
    {
        if (model != null && ModelState.IsValid)
        {
            WEEKLY_FOOD dbFood = _db.WEEKLY_FOOD.Find(model.ID);
            dbFood.INGRED_NAME = model.INGRED_NAME;
            _db.SaveChanges();
        }

        ActionResult a = Json(new[] { model }.ToDataSourceResult(request, ModelState));
        return a;
    }

1 个答案:

答案 0 :(得分:0)

我是Rute的同事。

发生的问题是kendo Update正在调用其他控制器,而不是正确的控制器。发生这种情况是因为正在呈现的数据的所有结果都没有唯一标识符。

现在,此唯一标识符已分配给model.Id,问题已解决。看到此链接后我明白了这一点http://www.telerik.com/forums/wrong-methods-are-fired

感谢您的帮助。

相关问题