Representación del nombre del campo en una plantilla de editor (representada a través de EditorFor ())
Actualmente estoy creando el back-end de administración para un sitio web en ASP.NET MVC.
En una aplicación MVC de ASP.NET, comencé a usar el método de ayuda 'EditorFor' así:
<div id="content-edit" class="data-form">
<p>
<%= Html.LabelFor(c => c.Title) %>
<%= Html.TextBoxFor(c => c.Title)%>
</p>
<p>
<%= Html.LabelFor(c => c.Biography) %>
<%= Html.EditorFor(c => c. Biography)%>
</p>
</div>
En el modelo, el campo 'Biografía' ha sido decorado con: [UIHelper ("Html")].
Tengo una vista parcial 'Html' (bajo Views / Shared / EditorTemplates):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.XML.Linq.XElement>" %>
<textarea class="html">
<%= Model.ToString() %>
</textarea>
Ahora me gustaría tener el atributo 'ID' de 'textarea' establecido en el nombre del campo, así:
<textarea id="Biography" class="html">
...
</textarea>
Pero no puedo ver una manera de hacer eso con la configuración actual.
Todo lo que puedo pensar es crear un ViewModel 'Html' que contenga una propiedad 'Value' y una propiedad 'ControlID'.
Pero si basara la vista en eso, en lugar de en 'System.XML.Linq.XElement', ya no sería compatible con el método de ayuda 'EditorFor' y tendría que hacer todo manualmente.
¿Alguien ha tenido un problema similar todavía?