side net mvc data custom bootstrap attribute asp annotation asp.net validation asp.net-mvc-2

asp.net - net - implementando ValidationMessageFor



validation asp net core (3)

El problema es que ValidationMessageFor solo usa el último nombre de propiedad como clave de mensaje de validación.

En tu caso, esto significa que:

<%= Html.ValidationMessageFor(model => model.SecurityQuestions[0].Question) %>

igual

<%= Html.ValidationMessage("Question") %>

y no lo que pensaste que sería Desafortunadamente, en este caso, tendrá que usar el helper no fuerte para tener toda la cadena como debe ser.

Estaba trabajando en la migración de la aplicación MVC1 a MVC2 hoy y me he encontrado con un problema al cambiar la aplicación ValidationMessage a ValidationMessageFor.

La siguiente es la lista de selección en mi vista

<%=Html.DropDownListFor(model => model.SecurityQuestions[0].Question, "Some Security question", new { @class = "form_element_select" })%>

El siguiente código funciona bien y puedo ver que el mensaje de validación vino de modelstate.

<%= Html.ValidationMessage("SecurityQuestions_0__Question")%>

pero este no funciona:

<%= Html.ValidationMessageFor(model => model.SecurityQuestions[0].Question)%>

SecurityQuestions es una lista genérica en mi modelo

public List<SecurityQuestion> SecurityQuestions { get; set; }

¿Es esto un error en "ValidationMessageFor" o me falta algo aquí?

Anteriormente, hice esta pregunta en los foros de asp.net .


Puede agregar el error que desea ver a ModelState, bajo la clave que genera ValidationMessageFor . Claro que es un truco, pero la forma más rápida de hacerlo. Y no agrega ninguna "SecurityQuestions_0__Question" fea a su marcado.


Este problema está solucionado en MVC V3