Le problème est le suivant: lorsque je mets 2 contrôles du même type sur une page, j'ai besoin de spécifier des préfixes différents pour la liaison. Dans ce cas, les règles de validation générées juste après le formulaire sont incorrectes. Alors, comment obtenir un travail de validation du client pour le cas ?:Asp.Net MVC2 Problème de validation côté client avec des contrôles avec des préfixes
la page contient:
<%
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.PhonePhone, Prefix = "PhonePhone" });
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.FaxPhone, Prefix = "FaxPhone" });
%>
le ViewUserControl de contrôle <PhoneViewModel>:
<%= Html.TextBox(Model.GetPrefixed("CountryCode"), Model.Phone.CountryCode) %>
<%= Html.ValidationMessage("Phone.CountryCode", new { id = Model.GetPrefixed("CountryCode"), name = Model.GetPrefixed("CountryCode") })%>
où Model.GetPrefixed("CountryCode")
juste retourne "FaxPhone.CountryCode" ou "PhonePhone.CountryCode" en fonction du préfixe
Et voici les règles de validation générées après le formulaire. Ils sont dupliqués pour le nom de champ "Phone.CountryCode". Bien que le résultat souhaité est de 2 règles (obligatoire, nombre) pour chacun des FieldNames « FaxPhone.CountryCode », « PhonePhone.CountryCode » alt text http://www.freeimagehosting.net/uploads/37fbe720bf.png
La question est en double un peu de Asp.Net MVC2 Clientside Validation and duplicate ID's problem mais les conseils de générer manuellement ids doesn 't aide.
Nice. Cette réponse a été très utile. J'aurais aimé pouvoir l'emporter deux fois de plus. –
Très, très utile. Je vous remercie. – Luke
Je sais que c'est une vieille réponse, mais je me demandais si votre méthode est préférable de mettre ceci dans votre vue: ViewData.TemplateInfo.HtmlFieldPrefix = "myViewModel.MyCustomObjdect"; –