我爲View Model類添加了ValidationSummary Html助手,該類有5個必填字段。它的作品得到了漂亮的紅色字丟失1,缺少2等 但我需要顯示一個消息不是其中五個(如:「您的輸入是無效的。」)。這可以通過ValidationSummary來完成嗎?如何從驗證摘要中刪除列表
12
A
回答
14
你有兩個選擇(至少):
既可以使用驗證摘要和排除屬性的錯誤:
@Html.ValidationSummary(true, "The input is not valid")
或錯誤信息,在你的行動自定義鍵關聯:
if (!ModelState.IsValid)
{
ModelState.AddModelError("myerrorsummary", "The input is not valid");
}
並將其顯示在頁面上:
@Html.ValidationMessage("myerrorsummary")
4
你可以嘗試跳過助手,如果你想要做的只是顯示一個消息,如果ModelState中是無效的。只需在ViewData
內檢查ModelState
即可使用。
@if (!ViewData.ModelState.IsValid)
{
<p>Your input is not valid.</p>
}
2
如果你看一下MVC3源代碼,你會發現,目前,如果你同時具有UnobtrusiveJavaScriptEnabled
使用ValidationSummary
與excludePropertyErrors=true
,不會有任何渲染驗證摘要。
我能夠在啓用UnobtrusiveJavascript的情況下使用MVC3顯示一條消息,以進行客戶端驗證。不要使用@Html.ValidationSummary
所有,並呈現:
@{
//Show the message when there are server side errors
ViewBag.ValidationSummaryClass = ViewData.ModelState.IsValid ? "validation-summary-valid" : "validation-summary-errors";
}
<div class="@ViewBag.ValidationSummaryClass" data-valmsg-summary="true">
<span>Before you can continue, please make sure you have completed the mandatory fields highlighted above.</span>
<ul style="display:none"/>
</div>
通知的display:none
,不顯眼的JavaScript仍然充滿錯誤信息的列表,但他們一直隱藏。
0
一種強制方法我已經在MVC3使用:
if (!ModelState.IsValid)
{
ModelState.AddModelError("", "Some contextual error message");
}
和您的網頁上顯示:
<% if(!ViewData.ModelState.IsValid) { %>
<span class="error"><%=ViewData.ModelState[String.Empty].Errors[0].ErrorMessage %> </span>
<% } %>
相關問題
- 1. 從驗證摘要中排除MVC3
- 2. 清除驗證摘要mvc3
- 3. 從驗證摘要中刪除重複條目asp.net
- 4. ASP.NET驗證摘要
- 5. 如何在Silverlight MVVM中刪除數據記憶格式驗證摘要
- 6. 已刪除HTTP摘要身份驗證-Gerrit
- 7. 無其他驗證的驗證摘要
- 8. CSS表單,ASP.NET驗證摘要是Wonky
- 9. 在驗證摘要錯誤列表中使用標籤標籤?
- 10. 驗證摘要外觀
- 11. Glassfish摘要身份驗證
- 12. 修改html驗證摘要
- 13. HTTP摘要身份驗證
- 14. 驗證問題摘要
- 15. 驗證文件摘要
- 16. ASP.NET - 多重驗證摘要
- 17. jQuery驗證onBlur摘要
- 18. 驗證摘要javascript錯誤
- 19. Groovy摘要身份驗證
- 20. MVC 2.0驗證摘要組
- 21. PHP摘要驗證,註銷
- 22. 摘要驗證失敗
- 23. 驗證摘要託收
- 24. 自定義驗證摘要
- 25. Authlogic和HTTP摘要驗證
- 26. TabControl驗證摘要(Silverlight 4)
- 27. Ajax調用驗證摘要
- 28. 格式驗證摘要
- 29. 驗證摘要領域
- 30. 驗證摘要未顯示
第一個解決方案似乎最好的,因爲它應該工作的客戶端,但它只在不使用UnobtrusiveJavaScript的情況下工作! – pauloya
我添加了我的解決方案。 – pauloya