Ho appena terminato il mio primo CMS ASP.NET MVC (2). Il passo successivo è creare un sito Web che mostri i dati dal database di CMS. Si tratta di progettazione di siti web:asp.net mvc2 - controller per pagina principale e organizzazione codice
http://img56.imageshack.us/img56/4676/portal.gif http://img56.imageshack.us/img56/4676/portal.gif
# 1 (scatola rossa) - Categorie di visualizzazione articolo. ViewModel:
public class CategoriesDisplay
{
public CategoriesDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
}
# 2 (scatola Brown) - display ultimi articoli x; salta quelli dalla casella 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 (scatola verde) - Visualizza ultimi x articoli. Utilizza lo stesso ViewModel come scatola marrone # 2
# 4 (scatola blu) - Visualizza l'elenco degli eventi in programma. Utilizza dataContext.Model.Event
come ViewModel
I riquadri n. 1, n. 2 e n. 4 si ripeteranno su tutto il sito e fanno parte della pagina mastro. Quindi, la mia domanda è: qual è il modo migliore per trasferire questi dati da Model a Controller e infine a View pages?
- Devo fare un controllo per la pagina di master e di classe ViewModel che vi avvolgerà tutti questi classi insieme O
- Devo creare parziali Visualizzazioni per ogni di queste scatole e rendere ogni di loro ereditare appropriata classe (se è anche possibile che funziona in questo modo?) O
- Devo inserire questo codice ripetuto in tutti i controller e tutte le ulteriori trasferimento di dati tramite Viewdata, che sarebbe probabilmente il wor se way :) OR
- C'è forse un modo migliore e più semplice ma non lo so/lo vedo?
Grazie in anticipo, Ile
EDIT:
Se la vostra risposta è # 1, quindi si prega di spiegare come fare un controller per pagina master!
EDIT 2:
In questa esercitazione viene descritto come passare i dati alla pagina master utilizzando classe astratta: http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx
In "Elenco 5 - Controllori \ MoviesController.cs", i dati vengono recuperati direttamente dal database utilizzando LINQ, non dal repository. Quindi, mi chiedo se questo è solo in questo tutorial, o qui c'è qualche trucco e il repository non può/non deve essere usato?
È possibile creare una pagina principale fortemente tipizzata in MVC? –
Vorrei anche sapere rispondere a questa domanda –
la risposta per il passaggio dei dati alla Pagina Master è qui: http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx –