MVC3 Html.DisplayFor - Est-il possible que ce contrôle génère un identifiant?
Je veux être capable d'afficher du texte, mais aussi le texte modifiable via jQuery.
<%= Html.DisplayFor(model => model.DeviceComponentName)%>
Si j'ai utilisé EditorFor au lieu de la méthode displayfor je voudrais voir un ID pour le contrôle d'entrée. Je ne veux pas la valeur à modifier dans cette façon, même si. Donc, j'ai fait une méthode displayfor, mais il ne génère pas une propriété ID de l'élément.
Dois-je juste envelopper la méthode displayfor dans un div et de faire quelque chose comme:
<div id="<%= ViewData.TemplateInfo.GetFullHtmlFieldName("DeviceComponentName") %>">
<%= Html.DisplayFor(model => model.DeviceComponentName)%>
</div>
$('#DeviceComponentName').text('newValue');
Ou est-il une manière plus propre de la réalisation de cet?
Mise à jour: Est-il un moyen qui ne dépend pas de chaînes codées en dur? Quelque chose qui les lie à l'objet lui-même, donc si ma propriété changements de nom, j'aimerais obtenir une erreur de compilation?
Aussi, je suis en utilisant ce code, mais je ne vois pas une valeur d'ID apparaissent:
<td class="editableValue">
<%--Label should be editable, so it needs an ID, but only will be edited by jQuery so it can't be an EditorFor--%>
<%= Html.DisplayFor(model => model.DeviceComponentName, new { id = "DeviceComponentName" })%>
<button type="button" id="ComponentTreeButton" class="nestedDialogButton">...</button>
</td>
source d'informationauteur Sean Anderson | 2012-10-18
Vous devez vous connecter pour publier un commentaire.
Pour éviter la "magie de la chaîne de" facteurs de production (dans le cas où votre modèle changement des propriétés), vous pouvez le faire avec une extension. Il est également beaucoup plus propre code:
Ensuite, il suffit de l'utiliser comme ceci:
Produira
Ou si vous voulez qu'il soit enveloppé dans une durée:
Qui fera:
Non-Rasoir
Non la syntaxe Razor, il vous suffit de l'utiliser comme ceci:
et: