Jak uzyskać dostęp do ModelState z poziomu mojego widoku (strona aspx)?

114

Jak uzyskać dostęp do ModelState z poziomu mojego widoku (strona aspx)?

Saajid Ismail
źródło
1
Myślę, że nie powinieneś. Takie rzeczy powinny mieć miejsce w kontrolerze.
Matthew Groves
1
Muszę wiedzieć, czy mój ModelState jest prawidłowy. Nie chcę tego robić: <% if (Html.ValidationSummary ()! = Null)%> <% {%> <p class = "validation-summary-errors"> Twoja wiadomość nie została wysłana. Popraw poniższe błędy i spróbuj ponownie. </p> <%}%> Zamiast tego chcę zrobić to: <% if (! ViewData.ModelState.IsValid) {%> <p class = "validation-summary-errors"> Twoja wiadomość nie została wysłana. Popraw poniższe błędy i spróbuj ponownie. </p> <%}%>
Saajid Ismail
12
Brzmi to jak dobry powód, aby uzyskać dostęp do ModelState
BritishDeveloper
Nie ma absolutnie nic złego w dostępie do ModelState w widoku. Jest częścią ViewData.
kennythecoder

Odpowiedzi:

179

Użyj ViewContext.ViewData.ModelState.

Mathias F.
źródło
19
Warto również zauważyć, że możesz po prostu to zrobić, ViewData.ModelStatea jeśli chcesz wyświetlić jakieś warunkowe znaczniki błędów, możesz zrobić to w następujący sposób:@if (!ViewData.ModelState.IsValid)
The Muffin Man