客戶端驗證和ValidationSummary對我的項目(MVC4 + Razor + Unobtrusive JS)工作正常,但服務器端錯誤未顯示在我的視圖中,如果有任何客戶端錯誤,它不會從視圖中刪除(它從ModelState中刪除)。我曾嘗試過Chrome14和IE9驗證服務器端錯誤摘要不起作用
服務器端錯誤正在作爲ModelState.AddModelError(string.Empty, ModelState.AllErrors());
添加到模型中,並顯示爲視圖爲@Html.ValidationSummary(false)
。
編輯
簡單的形式提交工作正常,它顯示了從服務器和更新返回的錯誤消息的多個錯誤消息,但是,基於AJAX表單提交不工作的基於Ajax的形式返回的錯誤信息提交的根本沒有顯示。
這裏是被如何製造的請求
@*... View contents related to Master Model ...*@
@using (Ajax.BeginForm("ActionToAddRecord", new AjaxOptions()))
{
@Html.Action("ActionToAddRecord")
<input type="submit" value="Add Record"/>
}
@*... View contents related to Master Model ...*@
ActionToAddRecord是表示由主模型包含在模型中的局部視圖
錯誤被返回作爲
[HttpGet]
public ActionResult ActionToAddRecord()
{
return View();
}
[HttpPost]
public ActionResult ActionToAddRecord(childModel model)
{
ModelState.AddModelError(string.Empty, "First error message");
ModelState.AddModelError(string.Empty, "Second error message");
return View(model);
}
樣品示範
編輯
我通過VS2010(基於對話框的登錄形式)在模板化的MVC應用程序中看到了類似的功能。錯誤消息以Json形式返回,然後JS用於顯示它們,IMO似乎像MS使基於Ajax的請求非常簡單且簡潔(Ajax.BeginForm
),但錯過了錯誤處理部分。現在我不願意爲此使用JS,可能有更好的方法來自動處理這種類型的錯誤處理。