Domanda

Ho seguito i passaggi da http: // memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html e MVC integrato in Umbraco con successo, ma ho ancora un problema che è fondamentale per me.

Esiste un modo per ereditare i modelli definiti da Umbraco in una vista MVC? A quanto ho capito il problema è che i modelli Umbraco diventano HTML solo in fase di runtime e le proprietà doctype, come @nodeName , non sono riconosciute e " Oggetto null riferimento " eccezione generata a causa di questo.

Grazie!

È stato utile?

Soluzione

Questa domanda è davvero vecchia e non pertinente alle versioni attuali di Umbraco.

Nel caso in cui qualcuno non fosse ancora a conoscenza - Tutte le versioni di Umbraco dal 2013 (6, 7 e ora 8) supportano MVC

Altri suggerimenti

Dopo aver dato un'occhiata al post sul blog, sembra che questo non sia effettivamente integrato con Umbraco ma che funzioni al fianco di Umbraco.

In quanto è effettivamente il proprio HttpHandler. Ciò significa che sta bypassando Umbraco Httphandler e tutta una serie di funzionalità Umbraco relative ai modelli e al CMS stesso.

Far sì che MVC utilizzi i modelli Umbraco non è (probabilmente) impossibile senza modifiche all'applicazione principale (nella versione 4+). Tuttavia, ciò non significa che non è possibile utilizzare MVC insieme a Umbraco con Umbraco che funge da archivio di contenuti per un'applicazione MVC.

È possibile creare facilmente controller MVC che hanno estratto i dati da Umbraco e li hanno resi disponibili per le visualizzazioni. Ad esempio potresti usare Umbraco Linq2Umbraco per questo.

Se fornisci maggiori dettagli sugli errori precisi che stai riscontrando e esattamente ciò che stai cercando di ottenere, potrebbe essere la soluzione nel modo in cui strutturi la tua applicazione piuttosto che tentare di forzare Umbraco 4+ a fare qualcosa che sarà nativo di Umbraco 5 (che è previsto per il rilascio quest'anno). Il codice sorgente per 5 è su Codeplex e può essere un buon posto per dare un'occhiata e vedere come il nucleo di Umbraco il team si sta avvicinando a questo.

C'è una vecchia discussione al riguardo qui: http: // forum .umbraco.org / yaf_postst5106_Using-ASPNET-MVC-con-Umbraco.aspx

e più recentemente qui: http://our.umbraco.org/forum/getting-started/installing-umbraco/2668-Use-Umbraco-with-aspnet-MVC

Ulteriori discussioni sono disponibili qui: http://our.umbraco.org/forum/developers/extending-umbraco/17523-Umbraco-461-and-MVC-3

e ancora di più qui: http: // nostro .umbraco.org / forum / sviluppatori / estendendo-Umbraco / 6837-Umbraco-Website-E-MVC-Website-in-one

Invece di provare a usare i controlli Umbraco, potresti prendere in considerazione la scrittura di Metodi di estensione HtmlHelper che utilizzano l'ombrello .NodeFactory.Node per ottenere il contenuto che stai tentando di visualizzare nelle visualizzazioni. Scrivere metodi che imitano (o semplificano in base alle tue esigenze) umbraco.presentation.templateControls.Item e umbraco.presentation.templateControls.Macro potrebbero essere sufficienti per te.

Modifica

Ho seguito questa strada con un certo successo. Ho anche dato un'occhiata alla fonte MVC per scoprire come le visualizzazioni parziali sono state aggiunte alla raccolta di controlli dei moduli Web sottostante. Ho finito per scrivere una classe che eredita dalla classe umbraco.presentation.templateControls.Macro che assomiglia molto alla classe System.Web.Mvc.ViewUserControl .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top