C# 剑道UI难以从网格模型中获取错误
在剑道UI网格中,我有一个内联编辑,我正在验证服务器端,如果存在错误,我将在json中返回它们。我已经走了这么远,但我正在努力从对象中提取这些错误来处理它们。我将输入下面的代码,从问题开始反向工作 我正在从编辑事件中获取模型。模型已填充,我可以在控制台中看到错误,但下面的my errors变量的值为nullC# 剑道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(
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!不知道为什么,但它给了我一些新的研究。谢谢