Ajax バインディングを使用した Knedo UI MVC グリッドを使用したインライン編集を実装し、サーバー側の検証をコントローラーで処理し、- を使用してエラーを送り返しました。
ModelState.AddModelError("エラー: ", ex.Message);
@(Html.Kendo().Grid<AnalyticsServiceWeb.ViewModel.SomeViewModel>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Path);
columns.Bound(p => p.Space);
columns.Command(command => { command.Edit(); command.Destroy(); });
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.InLine))
)
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
サーバー側の例外が発生するとサーバー側のエラー メッセージが表示されますが、UI でのアクションは完了します。つまり、サーバー側の例外が発生しても、新しいレコードがグリッドに追加されて更新されます。
アクション開始前に UI の状態を保持する方法はありますか?そのように動作するはずですが、何か不足しているかどうかわかりませんか?
前もって感謝します