MVC3 Html.DisplayFor - Czy możliwe jest wygenerowanie identyfikatora przez tę kontrolę?
Chcę być w stanie wyświetlić jakiś tekst, ale także mieć możliwość modyfikacji tekstu za pomocą jQuery.
<%= Html.DisplayFor(model => model.DeviceComponentName)%>
Gdybym użył EditorFor zamiast DisplayFor, zobaczyłbym identyfikator dla kontroli wejścia. Nie chcę jednak, aby wartość była edytowalna w ten sposób. Zrobiłem to DisplayFor, ale nie generuje właściwości ID dla elementu.
Czy powinienem po prostu zawinąć DisplayFor w div i zrobić coś takiego:
<div id="<%= ViewData.TemplateInfo.GetFullHtmlFieldName("DeviceComponentName") %>">
<%= Html.DisplayFor(model => model.DeviceComponentName)%>
</div>
$('#DeviceComponentName').text('newValue');
Czy jest to czystszy sposób na osiągnięcie tego?
Aktualizacja: Czy istnieje sposób, który nie zależy od zapisanych na stałe łańcuchów? Coś, co wiąże się z samym obiektem, więc jeśli zmieni się nazwa mojej własności, otrzymam błąd kompilacji?
Ponadto używam tego kodu, ale nie widzę wartości identyfikatora:
<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>