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