2010-04-10 11 views
5

Posiadam niestandardowy atrybut sprawdzania poprawności na poziomie klasy, dziedziczący z ValidationAttribute na moim modelu.Niestandardowe adnotacje danych klas i MVC klasy ASP.NET MVC

Dlaczego to nie rejestruje klucza w ModelState, gdy jego wartość IsValid jest nieprawdziwa? Widzę komunikat o błędzie w kolekcji ModelState.Values, ale kolekcja ModelState.Keys wyświetla tylko pusty ciąg "". Czy mogę podać klucz do niego - przypuszczalnie dlatego, że nie jest przypisany do nieruchomości?

Chcę móc używać ModelState.Usuń w moim kontrolerze, aby usunąć ten błąd pod pewnymi warunkami, ale nie mam klucza!

Wszelkie pomysły?

+0

Mam ten sam problem, musiałem sprawdzić wiele wartości, więc obłąkam niestandardowy atrybut na poziomie klasy, ale nic nie dostałem z powrotem do widoku pokazującego, że mam błąd. Odnoszę wrażenie, że używanie adnotacji do sprawdzania poprawności modelu jest w najlepszym razie bezbarwne. – JBeckton

+0

To pytanie http://stackoverflow.com/questions/4266632/unable-to-set-membernames-from-custom-validation-attribute-in-mvc2 ma ten sam problem i rozwiązanie ma nadzieję, że tat pomaga. – Vipresh

Odpowiedz

0

Co powiesz na sprawdzenie wyjątku ModelError.Exception w IModelBinder.OnModelUpdated.