Tôi rất có thể tìm kiếm thấy danh sách những lỗi khiến cho ModelState chưa phù hợp lệ sống đâu? Tôi ko thấy bất kỳ trực thuộc tính lỗi làm sao bên trên đối tượng người sử dụng ModelState.

Bạn đang xem: Modelstate

Đang xem: Modelstate.isvalid là gì

Về “hoàn toàn có thể là 0 lỗi và IsValid == false”: đó là mã mối cung cấp MVC tự https://github.com/Microsoft/referencesource/blob/master/System.Web/ModelBinding/ModelStateDictionary.cs#L37-L41

public bool IsValid get return Values.All(modelState => modelState.Errors.Count == 0); Bây tiếng, có vẻ nlỗi nó không thể được. Đó là giành cho ASP.NET MVC v1.

so với tôi có vẻ như nlỗi không nên, tất cả gì không đúng vào Values.All (modelState => modelState.Errors.Count == 0) không? Lưu ý rằng lỗi rất có thể là Thông báo hoặc Ngoại lệ; ví dụ Html.ValidationSummary ko hiển thị ngoại lệ (tôi đoán vì chưng lý do bảo mật); chắc hẳn rằng chính là lý do tại sao bạn không thấy lỗi? Làm vậy nào nhằm chúng ta chất vấn không có lỗi?

Vì chúng ta có thể đang lập trình trong Visual studio, chúng ta nên tận dụng kỹ năng sử dụng những điểm ngắt mang lại quá trình gỡ lỗi thuận lợi điều đó (hiểu vấn đề nhỏng vào trường hợp của bạn). Chỉ đề xuất đặt nó tức thì phía trước / trên khu vực các bạn chất vấn ModelState.isValid với di con chuột qua ModelState. Bây giờ chúng ta có thể dễ dàng lưu ý qua toàn bộ các quý hiếm bên trong cùng coi lỗi làm sao gây ra lỗi không hợp lệ trả về sai.

*

Nlỗi một phần bổ sung, trường hợp ErrorMessage không cụ thể so với bạn, chúng ta cũng có thể đi tới những phím cùng nó đã hiển thị cho chính mình biết nó vẫn đề cập đến thay đổi nào.

Dán đoạn mã dưới đây vào ActionResult của bộ tinh chỉnh và điều khiển của khách hàng cùng đặt trình gỡ lỗi vào thời điểm đó.

Xem thêm: Cuộc Sống Gia Đình Chính Sách Là Gì, Please Wait

var errors = ModelState .Where(x => x.Value.Errors.Count > 0) .Select(x => new x.Key, x.Value.Errors ) .ToArray(); Câu trả lời rất tốt ở đây, nên được đánh giá cao hơn nữa. Tại sao lại dành riêng thời hạn đào qua 5 lớp của đối tượng người tiêu dùng ModelState vào trình gỡ lỗi Lúc tôi có thể sửa lỗi từ bỏ nó. Tôi ước ao có mặt ở đó toàn bộ các buổi sáng sớm nếu như tôi theo câu trả lời cao nhất nhận xét bool hasErrors = ViewData.ModelState.Values.Any(x => x.Errors.Count > 1);hoặc lặp lại với

foreach (ModelState state in ViewData.ModelState.Values.Where(x => x.Errors.Count > 0)) Modelstate sẽ sở hữu được một khóa “Thuộc tính” với một lỗi liên quan trong từ điển. thông báo lỗi rất có thể để trống, nhưng lại số lỗi sẽ phản ánh số nằm trong tính không hợp lệ. Bởi vị thủ tục ModelStateDictionary.AddModelError nhấn một khóa và Chuỗi ngoại lệ hoặc lỗi; nó bắt buộc phải thêm một lỗi mô hình. Đôi lúc một chất dính nối nỉm ra một ngoại lệ nhưng không tồn tại thông tin lỗi. quý khách hàng hoàn toàn có thể tróc nã xuất nước ngoài lệ bằng đoạn mã sau nhằm mày mò điều gì sai:

(Thường giả dụ chất kết nối đang cố gắng thay đổi những chuỗi thành những thứ hạng phức hợp, v.v.)

if (!ModelState.IsValid) var errors = ModelState.SelectMany(x => x.Value.Errors.Select(z => z.Exception));// Breakpoint, Log or examine the menu with Exceptions. Mã này vô cùng có lợi so với tôi, dẫu vậy câu hỏi lặp lại các lỗi (Ngoại lệ) để đưa từng .Message dẫn mang đến “tham mê chiếu đối tượng ko được đặt thành phiên phiên bản của đối tượng”. khi tôi chuyển đổi z.Exception thành z.ErrorMessage, tôi rất có thể hiện thông báo lỗi. Đây là chiến thuật mang đến tôi, chuyển đổi thành z.ErrorMessage, tuy vậy tôi không gặp gỡ lỗi với z.Exception, chỉ với quý giá null. Có lẽ cực hiếm update câu vấn đáp ban sơ. Nếu bạn quăng quật bình chọn ModelsState.IsValid cùng để lỗi, nếu như khách hàng xào luộc dòng này ((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrorsvới dính vào phần đồng hồ đeo tay vào Visual Studio, nó đã cho mình biết đúng mực lỗi là gì. Tiết kiệm nhiều thời gian đánh giá lỗi ở chỗ nào.

Đây là lời khuyên ổn tốt nhất có thể trong chủ đề này. Vấn đề tôi chạm chán nên là 1 trong “.” (vết chấm) vào UserName

Thuộc tính ModelState bên trên bộ tinh chỉnh và điều khiển thực thụ là 1 trong đối tượng ModelStateDictionary. quý khách rất có thể tái diễn những khóa bên trên từ điển cùng sử dụng phương thức IsValidField nhằm chất vấn coi trường rõ ràng kia gồm hợp lệ hay không.

Nlỗi vừa xẩy ra với tôi – điều đó cũng có thể xảy ra khi bạn thêm thuộc tính đề xuất vào mô hình của chính mình cơ mà không cập nhật biểu mẫu mã của doanh nghiệp. Trong ngôi trường hòa hợp này, ValidationSummary sẽ không còn liệt kê thông báo lỗi.

Khi sử dụng trang web của công ty chúng tôi, chúng ta xác thực rằng bạn đang đọc và đọc Chính sách cookie cùng Chính sách bảo mật của chúng tôi.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *