MVC3 Html.DisplayFor - Kann dieses Steuerelement eine ID generieren?

Ich möchte in der Lage sein, Text anzuzeigen, aber ich möchte auch, dass der Text über jQuery geändert werden kann.

<%= Html.DisplayFor(model => model.DeviceComponentName)%>

Wenn ich EditorFor anstelle von DisplayFor verwenden würde, würde ich eine ID für das Eingabesteuerelement sehen. Ich möchte jedoch nicht, dass der Wert auf diese Weise bearbeitet werden kann. Ich habe es also zu DisplayFor gemacht, aber es wird keine ID-Eigenschaft für das Element generiert.

Soll ich das DisplayFor einfach in ein div einwickeln und so etwas machen wie:

<div id="<%= ViewData.TemplateInfo.GetFullHtmlFieldName("DeviceComponentName") %>">
    <%= Html.DisplayFor(model => model.DeviceComponentName)%>
</div>

$('#DeviceComponentName').text('newValue');

Oder gibt es einen saubereren Weg, dies zu erreichen?

Aktualisieren: Gibt es einen Weg, der nicht von hartcodierten Zeichenketten abhängt? Etwas, das mit dem Objekt selbst verknüpft ist. Wenn sich der Name meiner Eigenschaft ändert, wird ein Kompilierungsfehler angezeigt.

Außerdem verwende ich diesen Code, aber es wird kein ID-Wert angezeigt:

<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>

Antworten auf die Frage(7)

Ihre Antwort auf die Frage