3 votes

Comment puis-je définir l'attribut name sur une liste de sélection multiple générée à l'aide de ListBoxFor et MultiSelectList dans Asp.net MVC 3?

Voici comment j'appelle actuellement l'aide dans ma vue (en utilisant Razor et C#):

@Html.ListBoxFor(m => m.Measures, new MultiSelectList(Model.Measures, "MsId"), 
new Dictionary { { "id", "measureId" } })

Cela fonctionne bien en définissant l'attribut "id" dans l'élément de formulaire mais quand j'essaie de faire quelque chose comme ceci:

@Html.ListBoxFor(m => m.Measures, new MultiSelectList(Model.Measures, "MsId"), 
new Dictionary { { "id", "measureId" }, { "name", "measureId" } })

Le code source généré est toujours:

Toute aide serait grandement appréciée.

3voto

David Glenn Points 12819

Le nom est généré à partir du paramètre Expression> passé. Le nom de la propriété passée est utilisé donc dans votre cas m => m.Measures le nom Measures est utilisé. Cela permet de faire fonctionner la liaison de modèle lorsque votre formulaire est envoyé à une action.

Vous pouvez changer la valeur du nom en changeant le nom de la propriété en MeasuresId ou si cela n'est pas possible, vous pouvez utiliser la version non typée

@Html.ListBox("measureId", new MultiSelectList(Model.Measures, "MsId"));

2voto

Adam Tuliper - MSFT Points 22478

Passer en :

new {nom= "votreNom"}

pour vos attributs HTML dans la surcharge de ListBoxFor

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X