He estado luchando con mi personalización de EditorForModel
y la denominación de los elementos HTML emitidos por mi código y los ayudantes incorporados de MVC3. Mi código es muy simple y claramente falta algunas sutilezas, como nombrar correctamente los elementos renderizados.Estoy buscando recursos avanzados sobre la personalización de plantillas de editor MVC3
Estoy buscando recursos avanzados que puedan ayudarme a perfeccionar esta área de mi desarrollo actual, especialmente con vistas a subdividir un modelo de vista principal en submodelos más pequeños, para poder aplicar, por ejemplo, tres llamadas EditorForModel
en una vista , para dividir los editores de modelos generados en columnas de formularios o páginas de pestañas.
Mi 'anulación' actual de la plantilla por defecto EditorForModel
es el siguiente:
@{
// TODO Filtering for subsets of model without having to bind separate models.
var properties = ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !pm.IsComplexType && !ViewData.TemplateInfo.Visited(pm));
}
<fieldset>
<legend>@ViewData.ModelMetadata.DisplayName</legend>
<ul class="form-column">
@foreach (var prop in properties)
{
<li>
@{
if (prop.HideSurroundingHtml)
{
@Html.Editor(prop.DisplayName ?? prop.PropertyName)
}
else
{
@Html.Label(prop.PropertyName, (prop.IsRequired ? "* " : "") + (prop.DisplayName ?? prop.PropertyName))
@Html.Editor(prop.PropertyName)
}
}
</li>
}
</ul>
</fieldset>
He copiado y modificado el código de la plantilla de ejemplo Object.ascx en this article en Brad Wilson's blog. ¿Qué recursos puedo consultar para enriquecer esto y adaptarlo a tantos escenarios como sea posible, de la manera más rica posible?
Si están buscando plantillas HTML potentes, recomendaría revisar las convenciones de plantilla HTML desde el equipo FubuMVC. Son 100% compatibles con ASP.NET MVC y mucho más flexibles/composables. Los he usado por más de 2 años y me encantan. http://craigcav.wordpress.com/2011/11/22/applying-conventions-in-asp-net-mvc/ Si hace clic en la publicación de Nick hay un enlace a cómo hacer que esto funcione en ASP.NET MVC. – Ryan
No creo que pueda hacer demasiado nuch mejor que esa plantilla, es decir: una lista de etiquetas + Editor o Pantalla para cada propiedad. Si desea que su plantilla de objeto sea muy genérica, la única mejora que puede hacer es manejar el atributo de Orden para decidir en qué orden listar las propiedades. Por otro lado, puede diseñar su marco basado en atributos personalizados que controlan la forma en que se organiza la plantilla. Sin embargo, su forma de hacerlo depende en gran medida de su aplicación. –