El problema es: cuando pongo 2 controles del mismo tipo en una página, necesito especificar prefijos diferentes para el enlace. En este caso, las reglas de validación generadas inmediatamente después del formulario son incorrectas. Entonces, ¿cómo conseguir trabajo validación del cliente para el caso ?:Asp.Net MVC2 Clientside problema de validación con controles con prefijos
la página contiene:
<%
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.PhonePhone, Prefix = "PhonePhone" });
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.FaxPhone, Prefix = "FaxPhone" });
%>
el control de ViewUserControl <PhoneViewModel>:
<%= Html.TextBox(Model.GetPrefixed("CountryCode"), Model.Phone.CountryCode) %>
<%= Html.ValidationMessage("Phone.CountryCode", new { id = Model.GetPrefixed("CountryCode"), name = Model.GetPrefixed("CountryCode") })%>
donde Model.GetPrefixed("CountryCode")
sólo devuelve "FaxPhone.CountryCode" o "PhonePhone.CountryCode" según el prefijo
Y aquí están las reglas de validación generadas después del formulario. Se duplican para el nombre de campo "Phone.CountryCode". Mientras que el resultado deseado es 2 reglas (requerido, número) para cada uno de los FieldNames "FaxPhone.CountryCode", "PhonePhone.CountryCode" alt text http://www.freeimagehosting.net/uploads/37fbe720bf.png
La pregunta es un tanto duplicado de Asp.Net MVC2 Clientside Validation and duplicate ID's problem pero el consejo para generar manualmente los identificadores doesn no ayuda.
Agradable. Esta respuesta fue muy útil. Ojalá pudiera recitarlo un par de veces más. –
Muy, muy útil. Gracias. – Luke
Sé que esta es una respuesta antigua, pero me preguntaba si su método es preferible a poner esto en su vista: ViewData.TemplateInfo.HtmlFieldPrefix = "myViewModel.MyCustomObjdect"; –