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>