2010-10-15 11 views
10

Chciałbym zmienić htmlAttributes kodu renderowanego przez mój Html.ValidationMessageFor, ale chcę, aby wyświetlany komunikat był "domyślny".MVC2 Html.ValidationMessageFor: dodaj htmlAttributes ale zachowaj domyślny komunikat

Możliwości przeciążeniowe są:
A) Html.ValidationMessageFor(expression)
B) Html.ValidationMessageFor(expression, validationMessage)
C) Html.ValidationMessageFor(expression, validationMessage, htmlAttributesObject)

Szkoda, że ​​nie było opcji Html.ValidationMessageFor(expression, htmlAttributesObject), ale nie ma.

Jak osiągnąć pożądany wynik z opcją C? To znaczy, gdzie są przechowywane "domyślne" wiadomości? Czy istnieje czysty, łatwy sposób na uzyskanie tego, więc mogę go podłączyć do parametru validationMessage?

Dzięki

Odpowiedz

19

Ponieważ nie chcesz, aby zastąpić domyślny komunikat, po prostu dostarczyć pusty ciąg i MVC użyje domyślną wiadomość:

<%: Html.ValidationMessageFor(m => m.propertyName, string.Empty, new { attribs ... }) %> 
+0

Perfect. Dzięki. Sądzę, że założenie, że przekazanie pustego ciągu wyrenderuje (lub nie będzie) pusty ciąg znaków dla wiadomości. Czy to, że puste ciągi jako parametry nie zastąpią pomocnika, domyślnie jest jakaś ASP.NET lub bardziej ogólna konwencja .NET? Czy też to zachowanie jest zmienne dla każdego przypadku z osobna? –

+0

Ani naprawdę. Dowiedziałem się o tej funkcjonalności, patrząc na kod źródłowy, warto to sprawdzić, gdy masz szansę. Zostało to zrobione w ten sposób, ponieważ nie mogła istnieć osobna metoda po prostu przy użyciu dwóch parametrów, których pierwotnie chciałeś użyć, bez sygnalizowania, że ​​metoda jest zderzana z (expression, validationMessage). – Clicktricity

+0

jak przekazać w HTMLAttribute (3rd param), aby powiedzieć, aby to sprawdzanie poprawności w nowej linii lub w polu waliduje? – VoodooChild

Powiązane problemy