2011-10-17 82 views
5

我在我的一個MVC頁面中有強類型的ajax調用(POST)。我不想嘗試連接客戶端驗證,並且不會在客戶端顯示摘要,但是,我想在模型上拋出一些數據註釋並在控制器上進行驗證;如果驗證失敗,我想將驗證摘要中的內容作爲JSON屬性發回,以便我可以在對話框中將其顯示爲錯誤消息。請參閱控制器中的驗證摘要

如何在我的控制器中提供JsonResponse驗證摘要的文本?

回答

8

如果您嘗試獲取錯誤,則只需使用ModelState.Errors即可從控制器獲取所有錯誤。從那裏你可以用任何你喜歡的方式製作JSON響應:

var response = new 
        { 
         isValid = ModelState.IsValid, 
         errors = ModelState 
         .SelectMany(ms => ms.Value.Errors) 
         .Select(ms => ms.ErrorMessage) 
        }; 
return Json(response); 
+0

謝謝,那就是我一直在尋找的東西。 –