Попробуйте заменить
return Json(ModelState.ToDataSourceResult());
на
return Json(new []{ txns }.ToDataSourceResult(request, ModelState), JsonRequestBehaviour.AllowGet);
Вы хотите передать ModelState
и request
обратно в запросе источника данных.
В самой сетке вы хотите иметь ссылку на метод Error источника данных
.DataSource(datasource => datasource
.Ajax()
.Events(e => e
.Error("Grid_Error") // Can be named anything but it's usually best to add the suffix '_Error'
)
Теперь все, что вам нужно - это функция javascript, которая вызывается и печатает такие ошибки, как:
function Grid_Error(e){
if(e.errors){
var message = "There are some errors:\n";
// Loop through the errors you defined in the controller
$.each(e.errors, function(key, value){
if('errors' in value)
{
$.each(value.errors, function(){
message += this. '\n';
})
}
})
alert(message);
// Here you can simply cancel the changes using the datasource, reverting the grid back to its original state.
}
}
ПРИМЕЧАНИЕ. Если эта сетка является частичной, вам, возможно, придется повысить эту функцию javascript на уровень выше в cs html
родителя.