net mvc data custom asp annotation asp.net-mvc asp.net-mvc-3 razor

data - Asp.net MVC 3 RC-Validation de RazorMessageFor CustomMessage y ClientSideValidation Problem



razor validation (2)

ASP.Net MVC 3 RC, Navaja

Experimentar un comportamiento inesperado cuando trato de usar un mensaje personalizado y usar la validación del lado del cliente. El problema es que siempre muestra el mensaje personalizado aunque no haya ningún error.

Así que supongamos que tengo un modelo de cliente en el que el nombre se establece como obligatorio. Si tengo el siguiente código, el mensaje de validación no se muestra hasta que hago clic en Enviar, que funciona como se esperaba.

@Html.EditorFor(model => model.Client.FirstName) @Html.ValidationMessageFor(model => model.Client.FirstName)

Pero ahora digo que quiero personalizar el mensaje de validación para usar un asterisco como ese:

@Html.EditorFor(model => model.Client.FirstName) @Html.ValidationMessageFor(model => model.Client.FirstName, "*")

Ahora, incluso antes de hacer clic en el botón Enviar, siempre hay un asterisco junto al campo.

El comportamiento esperado es que mostraría el asterisco cuando haya un error de validación.

Gracias por cualquier ayuda.


Encontré el problema, se necesita el siguiente CSS:

.field-validation-valid { display: none; } .validation-summary-valid { display: none; }

En algún momento a lo largo de mi refactorización esas clases fueron eliminadas. Están ahí por defecto cuando comienzas un nuevo proyecto MVC 3. Espero que ayude a alguien en el futuro!


La respuesta elegida no funcionó para mí. Tuve que usar lo siguiente. Tenga en cuenta que la clase es "error", no "válida". Esto oculta el mensaje de validación que se muestra en la carga de la página.

<style> .field-validation-error { display: none; } .validation-summary-valid { display: none; } </style>