Pregunta

¿Cómo podrían ustedes crear un diseño dinámico en ASP.NET MVC 2, donde los administradores pueden seleccionar widgets para mostrar, organizarlos, deshabilitar, moverlos, etc.? Me refiero a un diseño flexible que se puede cambiar a través del panel de administración sin tener que tocar el código. Yo que pensaba acerca de la definición y almacenamiento de widgets de diseño de caminos en una base de datos. Más tarde pude asociar estos widgets con las rutas (en dB). Para cada solicitud (controlador, acción) Me gustaría ir a buscar el trazado entre los asociados con widgets y salida de ellos, de forma recursiva. Probablemente pude RenderAction de usuario y PartialViews para eso.

Es mi dirección correcta o debería centrarse en alguna otra técnica?

Gracias, Jakub

¿Fue útil?

Solución

Rob Connery hizo algo similar con su reescritura Kona. Fue capaz de hacer que las regiones en la página, y luego asociar widgets para esas regiones.

Hay dos enfoques que vienen a la mente:

1). La primera es que cargue todos sus widgets en la acción del controlador y el contenido que poseen. A continuación, enviar toda esta información de widgets (en un modelo) hasta su punto de vista y hacer su filtrado allí. Esto preserva su separación entre la vista y el controlador. Es probable que desee para crear un método de ayuda:

<% Html.RenderWidgets("Main", Model.Widgets) %>

<% Html.RenderWidgets("SideBar", Model.Widgets) %>

Una nota en la primera aproximación. Es probable que desee algún tipo de convención de nomenclatura para sus widgets, para que pueda encontrar su punto de vista parcial con más facilidad.

2). Otro enfoque es utilizar RenderAction y llamar a un "RegionController" que se puede pasar un nombre de región. Pasando el nombre de la región dará lugar a una consulta para todos los widgets que caen dentro de esa región específica.

 <% Html.RenderAction<RegionController>(x=>x.Widgets("Main")) %>

 <% Html.RenderAction<RegionController>(x=>x.Widgets("SideBar")) %>

Yo personalmente lo haría el primer enfoque, pero no veo un problema con el segundo enfoque distinto de los gritos de los puristas.

Otros consejos

Si desea interactivo de arrastrar y soltar de widgets, usar jQuery o ExtJS. ExtJS tiene una portal de ejemplo .

Si no desea utilizar Javascript, lo que se necesita para rodar una solución personalizada en la que se definen y se llenan con vistas parciales de carga dinámica áreas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top