Acabo de terminar mi primer ASP.NET MVC (2) CMS. El siguiente paso es crear un sitio web que muestre los datos de la base de datos de CMS. Este es el diseño de página web:asp.net mvc2 - controlador para la página maestra y la organización de código
http://img56.imageshack.us/img56/4676/portal.gif http://img56.imageshack.us/img56/4676/portal.gif
# 1 (cuadro rojo) - Categorías de pantallas del artículo. ViewModel:
public class CategoriesDisplay
{
public CategoriesDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
}
# 2 (cuadro Brown) - pantallas últimos artículos X; salta los del recuadro verde n. ° 3. Viewmodel:
public class ArticleDisplay
{
public ArticleDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
public int ArticleID { set; get; }
public string ArticleTitle { set; get; }
public string URLArticleTitle { set; get; }
public DateTime ArticleDate;
public string ArticleContent { set; get; }
}
# 3 (caja verde) - Muestra los últimos x artículos. Utiliza el mismo modelo de vista como cuadro marrón # 2
# 4 (caja azul) - Muestra la lista de los próximos eventos. Usa dataContext.Model.Event
como ViewModel
Las casillas # 1, # 2 y # 4 se repetirán en todo el sitio y son parte de la Página maestra. Entonces, mi pregunta es: ¿cuál es la mejor manera de transferir estos datos de Modelo a Controlador y finalmente a Ver páginas?
- ¿Debo hacer un controlador para la página maestro y la clase ViewModel que envolverá todas estas clases juntos o
- Debería crear vistas parciales para cada una de estas cajas y hacer que cada de ellos heredan clase apropiada (si es posible incluso que funciona de esta manera?) O
- ¿Debo poner este código repetido en todos los controladores y todos adicional de transferencia de datos a través de ViewData, que sería probablemente el WOR se way :) O
- Existe tal vez una forma mejor y más simple pero no lo sé/lo veo?
Gracias de antemano, Ile
EDIT:
Si su respuesta es No. 1, a continuación, por favor explique cómo hacer un controlador para la página principal!
EDIT 2:
En este tutorial se describe cómo pasar datos a la página principal utilizando clase abstracta: http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx
En "Listado 5 - Controladores \ MoviesController.cs", se recuperan los datos directamente de la base de datos utilizando LINQ, no del repositorio. Entonces, me pregunto si esto es solo en este tutorial, o si hay algún truco aquí y el repositorio no puede/no debería ser usado.
¿Es posible crear una página maestra fuertemente tipada en MVC? –
También me gustaría saber la respuesta a esta pregunta –
la respuesta para pasar datos a la Página Maestra está aquí: http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx –