Tôi đã thêm trình trợ giúp Html ValidationSummary cho lớp Chế độ xem của tôi có 5 trường bắt buộc. Và nó hoạt động có những từ màu đỏ đẹp thiếu 1, thiếu 2, vv Nhưng tôi cần hiển thị chỉ một tin nhắn không phải là năm của chúng (giống như: "Đầu vào của bạn không hợp lệ."). Điều này có thể được thực hiện với ValidationSummary?Cách xóa danh sách khỏi tóm tắt xác thực
Trả lời
Bạn có hai lựa chọn (ít nhất):
Hoặc sử dụng tóm tắt xác nhận và loại trừ lỗi bất động sản:
@Html.ValidationSummary(true, "The input is not valid")
hoặc kết hợp một thông báo lỗi với một phím tùy chỉnh trong hành động của bạn:
if (!ModelState.IsValid)
{
ModelState.AddModelError("myerrorsummary", "The input is not valid");
}
và hiển thị nó trên trang của bạn:
@Html.ValidationMessage("myerrorsummary")
Bạn có thể thử bỏ qua những người trợ giúp nếu tất cả những gì bạn muốn làm chỉ đơn giản là hiển thị một thông báo nếu ModelState không hợp lệ. Chỉ cần kiểm tra ModelState
trong phạm vi ViewData
và điều đó sẽ hoạt động.
@if (!ViewData.ModelState.IsValid)
{
<p>Your input is not valid.</p>
}
Nếu bạn nhìn vào mã nguồn MVC3 bạn sẽ thấy rằng, hiện nay, nếu bạn sử dụng ValidationSummary
với excludePropertyErrors=true
trong khi có UnobtrusiveJavaScriptEnabled
, sẽ không có bất kỳ bản tóm tắt xác nhận trả lại.
Tôi đã có thể hiển thị một tin nhắn duy nhất với MVC3 với UnobtrusiveJavascript được bật, để xác thực phía máy khách. Không sử dụng @Html.ValidationSummary
ở tất cả, và đưa ra:
@{
//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>
Thông báo các display:none
, javascript không phô trương vẫn lấp đầy danh sách với thông báo lỗi, nhưng chúng được giấu kín.
Một brute force cách tiếp cận tôi đã sử dụng trong MVC3:
if (!ModelState.IsValid)
{
ModelState.AddModelError("", "Some contextual error message");
}
và hiển thị nó trên trang của bạn:
<% if(!ViewData.ModelState.IsValid) { %>
<span class="error"><%=ViewData.ModelState[String.Empty].Errors[0].ErrorMessage %> </span>
<% } %>
- 1. C# Xóa danh sách khỏi danh sách
- 2. Xóa mục khỏi danh sách
- 3. Python: Cách xóa danh sách trống khỏi danh sách?
- 4. Xác thực Jquery - hiển thị tóm tắt xác thực trong quá trình xác thực mong muốn?
- 5. Python - xóa các mục khỏi danh sách
- 6. Xóa danh sách các đối tượng khỏi danh sách khác
- 7. xóa danh sách phụ khỏi danh sách trong tcl
- 8. Xóa danh sách khỏi danh sách bằng Python
- 9. Di chuyển đến Tóm tắt Xác thực - ASP.net MVC
- 10. Xem Tóm tắt Xác thực trong bộ điều khiển
- 11. Lỗi tóm tắt xác thực Mvc 4 không hiển thị
- 12. Cách yêu cầu một bản tóm tắt ngừng thực hiện
- 13. Xóa YourSelf khỏi danh sách ShareActionProvider
- 14. Xóa mục danh sách khỏi DropDownList
- 15. C# xóa các mục khỏi danh sách
- 16. Xóa mục khỏi danh sách bằng linq
- 17. cách xóa chuỗi rỗng khỏi danh sách, sau đó xóa giá trị trùng lặp khỏi danh sách
- 18. xóa mục khỏi danh sách weak_ptrs
- 19. Xóa phần tử khỏi danh sách chung
- 20. Bản ghi Git - tóm tắt tóm tắt của chi nhánh
- 21. Python: Xóa dấu cách khỏi đối tượng danh sách
- 22. Cách xóa phần tử khỏi danh sách JQUERY mobile
- 23. Cách xóa một mục khỏi danh sách chung
- 24. Cách tốt nhất để xóa đối tượng khỏi Danh sách
- 25. Cách xóa danh sách các từ khỏi danh sách các chuỗi
- 26. Sử dụng chính xác lớp Tóm tắt
- 27. Cách hiệu quả để xóa danh sách trống khỏi danh sách?
- 28. Hibernate: Xóa mục khỏi Danh sách không tồn tại
- 29. Xóa danh sách tham số khỏi f (danh sách) bằng bộ tiền xử lý
- 30. Tóm tắt Xác thực ASP.NET: Làm cách nào để vô hiệu hóa trình xác thực bằng JavaScript?
Các giải pháp đầu tiên có vẻ tốt nhất bởi vì nó sẽ làm việc phía khách hàng, nhưng nó chỉ hoạt động khi không sử dụng UnobtrusiveJavaScript! – pauloya
Tôi đã thêm giải pháp của mình. – pauloya