Są sytuacje, w których mój modelStateState jest nieprawidłowy, ale nie może znaleźć tego, co go unieważniło, ponieważ nie istnieją wzorce ModelErrors. Jaki jest najłatwiejszy sposób ustalenia, co unieważniło twój stan modelu, jeśli sam nie dodałeś ModelError?Co może spowodować, że wartość ViewData.ModelState.IsValid stanie się fałszywa
Odpowiedz
Patrząc na asp.net mvc source code, właściwość IsValid w ModelStateDictionary zwraca po prostu wartość true lub false w zależności od tego, czy w wartości ICostation ModelState przechowywanej we właściwości Values występują błędy.
Powinieneś być w stanie znaleźć żadnych błędów w tym komunikacie i jak ten wyjątek:
foreach(var modelStateValue in ViewData.ModelState.Values)
{
foreach(var error in modelStateValue.Errors)
{
// Do something useful with these properties
var errorMessage = error.ErrorMessage;
var exception = error.Exception;
}
}
mam biegł podobnego problemu, a przy użyciu tego samego rodzaju rutynę, że Steve dostarczonych znaleźć wyjątek został rzucony (niewdzięcznie) gdzieś wewnątrz domyślnego spoiwa modelu, który nie trafił do Html.ValidationSummary.
Problem w szczególności, że miałem był dropbox z "Tak" lub "Nie" opcji, wartości "1" i "0" (zamiast "prawda" i "fałsz"), a model Binder zakrztusił się przy próbie zamiany tych wartości na boolowskie (które oczekiwał członek mojej jednostki), stwierdzając, że 0 nie jest poprawną wartością dla Boolean.
Miałem nadzieję, że zostanie wygenerowany ładny komunikat stwierdzający, że mój wybór był nieważny, ale zamiast tego zostałem potraktowany jako pusty ValidationSummary. Wygląda na to, że wyjątek został połknięty! (i jest teraz czymś, czego będę szukał w przyszłości.) To powinno być może zgłoszone do MS jako błąd?
Masz na to odpowiedź? –
To było kilka lat temu i pamiętam problem, ale nie jestem pewien, czy pamiętam odpowiedź. Sądzę, że mogłem w końcu napisać specjalny kod przypadku, aby wykonać moją własną walidację, nie polegając już na domyślnym segregatorze. (To znaczy, sprawdzanie Request.Form bezpośrednio, aby dowiedzieć się błędów we własnym zakresie, zakładając, że ValidationSummary nie zawsze będzie pomocne.) To było z powrotem w MVC 2, nie jestem pewien, czy nadal jest tak w v4? – Funka
- 1. Co może spowodować, że rozmowy ITransaction.CommitAsync potrwają naprawdę długo (24h)?
- 2. Co może spowodować wygenerowanie SIGHUP?
- 3. co może spowodować zignorowanie pdb.set_trace()?
- 4. Co może spowodować, że automatyczne uzupełnianie Chrome przestanie działać?
- 5. Co może spowodować wyjątek java.lang.reflect.InvocationTargetException?
- 6. Co może spowodować, że Double Buffering zabije moją aplikację?
- 7. Co może spowodować, że clang nie znajdzie nagłówka unordered_map?
- 8. Co może spowodować awarię dynamic_cast?
- 9. Co się stanie, jeśli zmieni się obiekt __hash__?
- 10. co może spowodować, że html i skrypt będą się zachowywać w różnych iteracjach pętli for?
- 11. Co może spowodować zmianę Oracle ROWID?
- 12. Co się stanie, jeśli chcę zapisać wartość None w memcache?
- 13. Wybranie opcji może spowodować, że VoiceOver przeskoczy na górę strony
- 14. Co się stanie, jeśli przypisujesz wartość do $ _REQUEST?
- 15. Dereferencja może spowodować "java.lang.NullPointerException"
- 16. Co może spowodować, że oryginalny parametr stanu "OAuth2" będzie pusty w org.springframework.social.connect.web.ConnectSupport?
- 17. Co może spowodować wyjątek ArgumentException podczas aktualizowania PictureBox?
- 18. Co może spowodować, że CSS nie będzie ładowany sporadycznie we wszystkich przeglądarkach?
- 19. Co może spowodować, że PHPUnit nie będzie drukować bardzo dużych komunikatów o błędach?
- 20. co może spowodować, że plik node.js zostanie wydrukowany. Zlikwidowano i zakończono?
- 21. Dlaczego słaba wartość IBOutlet NSLayoutConstraint zmienia się na zero, gdy sprawię, że stanie się ona nieaktywna?
- 22. co może spowodować, że Visual Studio będzie cały czas odbudowywać całe moje rozwiązanie?
- 23. Każdy pomysł, co może spowodować, że "vshost32.exe przestał działać" w Visual Studio 2013?
- 24. Co stanie się, gdy odświeżymy stronę internetową?
- 25. Co dokładnie może spowodować "HIERARCHY_REQUEST_ERR: DOM Exception 3" -Error?
- 26. Menedżer telefonii zwraca wartość null dla numeru IMEI: co może to spowodować?
- 27. Co może spowodować, że StaleDataException będzie inne niż przedwcześnie wywoływanie cursor.close()?
- 28. Co może spowodować, że Rust TcpSocket :: write() zwróci "nieprawidłowe dane wejściowe"?
- 29. Co może spowodować "Zasób tymczasowo niedostępny" dla polecenia send send()
- 30. Co może spowodować błąd kompilatora Java podczas analizowania komentarza?
To jest niesamowite! +1 – TheOptimusPrimus