2010-07-12 10 views
4

J'ai une page Web ASP.NET MVC 2 dans laquelle je rends plusieurs vues partielles du même type. Chaque vue partielle contient un formulaire Ajax pour publier smth. La forme est composée de:ASP.NET MVC 2 Conflit de nom de champ de formulaires PartialView multiples

  • une entrée: EditorFor (m => m.content)
  • la validation de l'entrée: ValidationMessageFor (m => m.Content)

Le problème est Comme il y a plus d'un de ces formulaires sur la page, il y a un conflit dans les noms des champs d'entrée. Je peux résoudre ceci en ajoutant la propriété 'htmlFieldName' de la surcharge de EditorFor(), mais cela cause un autre problème; la validation ne fonctionne plus car le nom du champ de saisie a changé ...

Des idées?

Répondre

1

Ok, je l'ai résolu. Le problème est que le conflit n'était pas à cause des identifiants du champ de saisie, mais du champ de validation. Alors maintenant, cela fonctionne comme ceci:

<%= Html.EditorFor(m => m.Content)%> 
<%= Html.ValidationMessageFor(
     m => m.Content, 
     null, 
     new { id = Model.ValidationMessageId, name = Model.ValidationMessageId })%> 

où ValidationMessageId est une propriété de chaîne en lecture seule du modèle qui renvoie un identifiant html unique pour le champ de validation.