2010-02-09 4 views
2

Je me demandais comment puis-je imiter les suivants à l'aide des attributs ...ASP.Net MVC 2.0: nom du paramètre EditorFor par attributs

<%= Html.EditorFor(x => x.SportProgramIdList, "FormMultiSelectDropDownList", "SportProgramIds")%> 

Je sais que je peux spécifier le modèle à l'aide [UIHint (« FormMultiSelectDropDownList ») ] mais je suis parti avec le problème avec la façon de définir le nom ...

Vive Anthony

Répondre

0

Je suppose que vous devrez créer votre propre CustomAttribute UINameAttribute. Vous pouvez utiliser le ModelMetadata pour garder votre attribut et ensuite je ne sais pas quelle serait la meilleure façon de l'obtenir, je suppose que vous auriez à dépasser l'extension HtmlHelper.EditorFor sans le paramètre et passer votre attribut à l'autre. Je suis trop paresseux et fatigué pour essayer une réponse plus complète.

regard sur:

Why You Don't Need ModelMetadata.Attributes

ASP.NET MVC 2 Templates, Part 2: ModelMetadata

-1

Utilisez l'argument objectAttributes

<%= Html.EditorFor(x => x.SportProgramIdList, "FormMultiSelectDropDownList", new { id="SportProgramIds" }) %>> 

vous pouvez utiliser cette option pour définir l'un des attributs d'entrée html

+0

Cette convention doesn ne fonctionne pas pour EditorFor ou D isplayFor, car vous ne transmettez pas d'objet d'attributs HTML anonymes, il s'agit d'un objet d'ajout de ViewData anonyme. Ajouter quelque chose ici nécessiterait de le consommer dans un éditeur/modèle d'affichage personnalisé. Un exemple de ceci a été fait dans une [réponse à une question similaire] (http://stackoverflow.com/questions/1625327/asp-net-mvc-2-editorfor-and-html-properties/3021176#3021176). – patridge

Questions connexes