Я решаю эту проблему с помощью довольно простой техники javascript:
Сначала настройте ваш OnSuccess
следующим образом:
OnSuccess = "UpdateSuccessful(data)"
Затем ваша функция javascript будет такой:
function UpdateSuccessful(data) {
if (data.indexOf("field-validation-error") > -1) return;
// Do your valid stuff here
}
Таким образом, нет необходимости связываться с вашим контроллером, или, что более важно, ваш контроллер может возвращать Partial View
с ошибками модели, не делая ничего странного, например:
public ActionResult SaveDetails(Project model)
{
if (ModelState.IsValid)
{
model.SaveProject();
}
return PartialView("ProjectForm", model);
}
Ив вашем AjaxOptions
:
UpdateTargetId = "FormContents"
Теперь просто убедитесь, что у вас есть div
или что-то с id="FormContents"
везде, где вы хотите, чтобы ваша форма отображалась.