129 votes

Attributs HTML pour EditorFor() dans ASP.NET MVC

Pourquoi ne puis-je pas passer dans les attributs html pour EditorFor()? par exemple;

<%= Html.EditorFor(model => model.Control.PeriodType, 
    new { disabled = "disabled", readonly = "readonly" }) %>

Je ne veux pas utiliser les métadonnées

Mise à jour: La solution a été d'appeler cela de la vue :

 <%=Html.EditorFor( model => model.Control.PeriodEndDate, new {Modifiable=model.Control.PeriodEndDateModifiable})%>

et utiliser ViewData["Modifiable"] dans mon custom EditorTemplates/Chaîne.ascx où j'ai une certaine logique de vue qui détermine s'il convient d'ajouter readonly et/ou handicapées attributs à l'entrée L'anonyme de l'objet passé en EditorFor() est un paramètre appelé additionalViewData et ses propriétés sont transmises à l'éditeur de modèle dans la collection ViewData

115voto

AntonK Points 326

Mise à jour MVC 5.1 prend désormais en charge le ci-dessous approche directement, de sorte qu'il fonctionne pour les construit dans l'éditeur de trop. http://www.asp.net/mvc/overview/releases/mvc51-release-notes#new-features (Il s'agit soit d'un cas de Grand esprit de penser ou ils ont lu ma réponse :)

Mise À Jour De Fin

Si votre utilisation de votre propre éditeur de modèle ou avec MVC 5.1 qui prend désormais en charge le ci-dessous approche directement intégrés dans les éditeurs.

@Html.EditorFor(modelItem => item.YourProperty, 
  new { htmlAttributes = new { @class="verificationStatusSelect", style = "Width:50px"  } })

puis dans votre modèle

@Html.TextBoxFor(m => m, ViewData["htmlAttributes"])

96voto

Darin Dimitrov Points 528142

compatible avec les métadonnées, donc si vous voulez ajouter html vous attribue [pourrait toujours le faire](http://aspadvice.com/blogs/kiran/archive/2009/11/29/Adding-html-attributes-support-for-Templates-_2D00_-ASP.Net-MVC-2.0-Beta_2D00_1.aspx). Une autre option est de simplement écrire un modèle personnalisé et utiliser :

42voto

vtforester Points 168

6voto

Murali Points 10725

Maintenant, ASP.Net MVC 5.1 obtenu construit en soutien en sa faveur.

Des Notes de publication

Nous permettons maintenant passant dans les attributs HTML dans EditorFor comme un objet anonyme.

Par exemple :

3voto

Mhoque Points 111

Pourquoi ne pas simplement utiliser

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