MVC3 Html.DisplayFor - É possível ter este controle gerar um ID?

Eu quero ser capaz de exibir algum texto, mas também ter o texto ser modificável via jQuery.

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

Se eu usasse o EditorFor em vez do DisplayFor, eu veria um ID para o controle de entrada. Eu não quero que o valor seja editável dessa forma, no entanto. Então, eu fiz um DisplayFor, mas ele não gera uma propriedade de ID para o elemento.

Devo apenas embrulhar o DisplayFor em um div e fazer algo como:

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

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

Ou existe uma maneira mais limpa de conseguir isso?

Atualizar: Existe uma maneira que não depende de strings codificadas? Algo que se liga ao próprio objeto, portanto, se o nome da minha propriedade for alterado, eu recebo um erro de compilação?

Além disso, estou usando esse código, mas não vejo um valor de ID aparecer:

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

questionAnswers(7)

yourAnswerToTheQuestion