MVC3 Html.DisplayFor - ¿Es posible que este control genere una ID?
Quiero poder mostrar un texto, pero también hacer que el texto sea modificable a través de jQuery.
<%= Html.DisplayFor(model => model.DeviceComponentName)%>
Si usara EditorFor en lugar de DisplayFor, vería una ID para el control de entrada. Sin embargo, no quiero que el valor sea editable de esa manera. Entonces, lo he hecho un DisplayFor, pero no genera una propiedad de ID para el elemento.
Debería simplemente envolver el DisplayFor en un div y hacer algo como:
<div id="<%= ViewData.TemplateInfo.GetFullHtmlFieldName("DeviceComponentName") %>">
<%= Html.DisplayFor(model => model.DeviceComponentName)%>
</div>
$('#DeviceComponentName').text('newValue');
¿O hay una forma más limpia de lograr esto?
Actualizar: ¿Hay alguna forma que no dependa de cadenas codificadas? ¿Algo que se vincula con el objeto en sí mismo, si el nombre de mi propiedad cambia, obtengo un error de compilación?
Además, estoy usando este código, pero no veo que aparezca un valor de ID:
<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>