Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 剑道UI难以从网格模型中获取错误_C#_Jquery_Asp.net Mvc_Kendo Ui - Fatal编程技术网

C# 剑道UI难以从网格模型中获取错误

C# 剑道UI难以从网格模型中获取错误,c#,jquery,asp.net-mvc,kendo-ui,C#,Jquery,Asp.net Mvc,Kendo Ui,在剑道UI网格中,我有一个内联编辑,我正在验证服务器端,如果存在错误,我将在json中返回它们。我已经走了这么远,但我正在努力从对象中提取这些错误来处理它们。我将输入下面的代码,从问题开始反向工作 我正在从编辑事件中获取模型。模型已填充,我可以在控制台中看到错误,但下面的my errors变量的值为null function onEdit(e) { var errors = e.model.Errors; console.log(errors); console.log(

在剑道UI网格中,我有一个内联编辑,我正在验证服务器端,如果存在错误,我将在json中返回它们。我已经走了这么远,但我正在努力从对象中提取这些错误来处理它们。我将输入下面的代码,从问题开始反向工作

我正在从编辑事件中获取模型。模型已填充,我可以在控制台中看到错误,但下面的my errors变量的值为null

function onEdit(e) {
    var errors = e.model.Errors;
    console.log(errors);
    console.log(e.model);
};
这是我的cshtml网格设置,我在其中配置编辑事件和可编辑代码

@(Html.Kendo().Grid<RosterGridViewModel>()
    .Name(gridId)
    .HtmlAttributes(new {style="height: 400px;"})
    .Columns(columns => {
        columns.Bound(p => p.ApprovalStatus);
        columns.Bound(p => p.LastName);
        columns.Bound(p => p.FirstName);
        columns.Bound(p => p.Birthdate).Format("{0:M/dd/yyyy}");
        columns.Bound(p => p.Uic).Title("UIC");
        columns.Bound(p => p.DateAdded).Format("{0:M/dd/yyyy}");
        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(190);
    })
    .Sortable()
    .Scrollable()
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple))
    .Events(events => events.DataBound("onDataBound").Edit("onEdit"))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .Read(o => o.Action(AppRoute.RosterGridRead.ToMethod(), AppRoute.RosterGridRead.ToController()))
        .Update(o => o.Action(AppRoute.RosterEdit.ToMethod(), AppRoute.RosterEdit.ToController()))
        .Destroy(o => o.Action(AppRoute.RosterGridDestroy.ToMethod(), AppRoute.RosterGridDestroy.ToController()))
        .Group(groups => groups.Add(p => p.School))
        .Model(model => 
            {
                model.Id(p => p.Id);
                model.Field(p => p.Id).Editable(false);
                model.Field(p => p.ApprovalStatus).Editable(false);
                model.Field(p => p.DateAdded).Editable(false);
            }
        )
    )
    .ToolBar(toolbar => toolbar.Custom().Text(ActionLabel.DeleteSelection.GetDescription()).HtmlAttributes(new { onclick = "deleteSelection(event)" }))
)
必须首先将e.model.Errors对象转换为JSON,如下所示,然后才能获取所需的任何属性/键

e.model.Errors.toJSON().Message

我尝试将错误切换为ValidationErrors,并将事件切换为保存而不是编辑。症状没有改变…任务继续。您正在显示的控制台/图像中记录了哪个对象?显示的对象是第一个代码块中显示的e.model变量。解决方法信息:我从未真正满意地解决过这个问题。dcodesmith让我走上了正确的道路。为了得到错误,以便我可以使用它们,我必须在网格行上循环,并检查数据中的每个错误消息。我在DataBound事件中这样做了,尽管我认为它在我最初尝试使用的编辑或保存事件中会起作用。e.model.Errors返回为null,即使您在查看e.model时可以看到其中包含的值。所以e.model.Errors.toJSON抛出e.model.Errors为null的错误。当我这样做时,它将错误显示为null!不知道为什么,但它给了我一些新的研究。谢谢