Comment ajouter des données d'attributs pour l'élément html dans ASP.NET MVC?
J'ai appris il ya quelques minutes que l'ajout d'attributs de données est une belle façon d'ajouter des informations personnalisées à des éléments html. J'ai donc essayé de faire comme ceci:
<%= Html.TextBox ("textBox", "Value", new { data-myid = m.ID })%>
Mais il finit comme une erreur de syntaxe. Comment puis-je définir des attributs de données?
EDIT:
Je vois que je peux obtenir cet effet en utilisant:
<%= Html.TextBox ("textBox", "Value", new Dictionary<string, object> {{ "data-myid", m.ID }})%>
Mais qui n'a pas l'air...euh...propre! Est-il meilleure façon de le faire?
- Voir cette question "trait d'union attributs html avec asp.net mvc' stackoverflow.com/questions/2897733/...
- remarque: la nouvelle réponse correcte est stackoverflow.com/a/5872576/1037948 plus bas sur cette page si vous n'aimez pas le défilement 😉
Vous devez vous connecter pour publier un commentaire.
Utiliser un trait de soulignement au lieu d'un tiret.
new { data_myid = m.ID }
Ce travaille certainement dans MVC3 (n'ai pas vérifié les autres versions). Le trait de soulignement seront convertis en un tableau de bord lorsque le code HTML est affiché.
MODIFIER
Cela fonctionne dans les versions les plus récentes de la MVC trop.
Je ne vois aucun moyen d'obtenir un type anonyme déclaration d'accepter
data-myid
, puisque ce n'est pas un nom de propriété valide en C#. Une option serait de créer une nouvelle surcharge qui prenddataAttributes
paramètre, et ajoutedata-
les noms pour vous...Vous pouvez ensuite ajouter un
data-myid
attribut avecCependant, qui vous laisse créer la surcharge sur toutes les autres méthodes que vous souhaitez accepter des attributs des données, ce qui est une douleur. Vous pourriez obtenir environ que par le déplacement de la logique à un
et l'appeler comme
Je pense que vous aurez à créer votre propre helper de le faire pour vous. Je ne peux pas trouver un moyen de le faire directement dans la vue.