2016-06-15 7 views
5

Model:Zastosuj klasę @ Html.ValidationMessageFor

[Required(AllowEmptyStrings = false, ErrorMessage="Please enter student name.")] 
[StringLength(20,ErrorMessage="Student name cannot be over 20 characters long")] 
    public string StudentName { get; set; } 

Widok:

@Html.ValidationMessageFor(m=>m.StudentName,new {@class = "validation"}) 

Wydaje się, nie ma takiego przeciążenia dla ValidationMessageFor. Jak zastosować do niej zajęcia?

+0

Znaczniki HTML, który powinien być nazwa klasy o nazwie 'text-danger' i' pola walidacja-error' .. spróbuj dodać CSS do tych nazw klas –

+0

@BviLLe_Kid Nie mogłem znaleźć tych klas. Czy znajdują się w ~/Content/Blue.css? Moja struktura to MVC4. –

+0

Mam na myśli, gdy przeglądasz stronę w IE lub Chrome, kliknij prawym przyciskiem myszy na element i naciśnij "Sprawdź", a to pokaże ci znacznik html dla tego elementu. spróbuj tego, co odpowiedział Rosdi .. możesz potrzebować umieścić '! important' po –

Odpowiedz

12

Właśnie wyglądałem this w górę.

Więc w twoim przypadku Spróbuj:

@Html.ValidationMessageFor(m=>m.StudentName,""/* or null or what you want the error message to be */, new { @class = "validation" }) 
+0

Czy drugi parametr nie usunął oryginalnego komunikatu o błędzie? –

+0

@DylanChensky Możesz to zmienić, proszę. Osobiście umieszczam komunikaty o błędach w moim modelu za pomocą atrybutu "Wymagane". –

+0

Co jeśli mam 2 komunikaty o 2 błędach? Zobacz pytanie o aktualizację. –

4

Domyślnie powinno używać się klasy .field-validation-error.

Wszystko, co musisz zrobić, to dostosować to css.

.field-validation-error { 
    color: red; 
} 

Jeśli naprawdę chcesz zmienić tę nazwę klasy na "sprawdzanie poprawności", to nie wiem jak.

+0

Próbowałem inspektora F12 Dom i szukałem w eksploratorze rozwiązań, nie mogę znaleźć tej klasy. –

+1

ta klasa (zastosowana do zakresu) wyświetli się tylko wtedy, gdy zwrot "ModelState" zostanie odrzucony, dlatego nie będzie można go zobaczyć, jeśli sprawdzanie poprawności jeszcze nie nastąpiło. –