2011-06-10 35 views
20

Estoy tratando de utilizar un mensaje diferente para @Html.ValidationMessageFor() en ASP.NET MVC3. Esto funciona bien, pero parece hacer que el mensaje siempre se muestre, p. si hago esto:@ Html.ValidationMessageFor() personalizado validationMessage siempre se muestra

@Html.ValidationMessageFor(model => model.TimesheetEntry.Product) 

entonces el error solo se muestra cuando envío el formulario y no es válido. Sin embargo, si hago esto:

@Html.ValidationMessageFor(model => model.TimesheetEntry.Product, "custom error") 

, ese mensaje se muestra tan pronto como cargue la página por primera vez. Probablemente estoy haciendo algo estúpido aquí y cualquier ayuda sería apreciada.

Respuesta

32

¿Has probado el CSS desde this question?

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

Sí, gracias, ya lo hizo y funciona. Aunque parece un poco hackear –

+2

@Tom Haigh, creo que este CSS se agrega de la caja con una nueva aplicación web MVC3. La respuesta a la que hice referencia sugiere que el CSS fue eliminado en algún momento durante el desarrollo. –

+0

¿Por qué tengo que agregar estas clases manualmente? Pensé que MVC lo agregaría automáticamente. De todos modos, la solución funciona a la perfección. –

1

No he jugado con la validación suficiente en MVC 3, así que solo estoy corriendo por la forma en que solucionaría este problema.

Me gustaría ver esto: http://msdn.microsoft.com/en-us/library/dd470929.aspx

Sí, documentación estándar de MSDN, pero los ValidationMessageFor() estados de método:

Devuelve el código HTML para un mensaje de validación de errores para cada campo de datos que está representado por la expresión especificada, utilizando el mensaje especificado.

Eso suena, para mí, como siempre debería devolver el mensaje, incluso cuando no está entregando un mensaje personalizado como una cadena. Parece que hay otros métodos que pueden ajustarse mejor a sus necesidades en el URI especificado.

+0

yeah gracias Eso es interesante. Sin embargo, es extraño que la sobrecarga que no acepta un mensaje personalizado se comporte de manera diferente (y no siempre muestre el mensaje), aunque la descripción en esa página es similar –

8

probablemente tienen los parámetros del modelo en su HTTPGet ActionResult método

Cuestiones relacionadas