68 votes

MVC et intégration Umbraco

J'ai suivi les étapes du site http://memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html et intégré MVC dans Umbraco avec succès, mais j'ai toujours un problème critique pour moi.

Y a-t-il un moyen d'hériter des templates définis dans Umbraco dans une vue MVC? Tel que je comprends le problème est que les templates Umbraco deviennent du HTML seulement à l'exécution et les propriétés doctype, comme @nodeName, ne sont pas reconnues et une exception "Object null reference" est lancée à cause de cela.

0 votes

Curieux de savoir comment vous vous en êtes sorti, avez-vous réussi à le faire fonctionner

0 votes

Un autre curieux - avez-vous résolu ce problème?

7 votes

Je pense que la prochaine version d'Umbraco utilisera ASP.Net MVC our.umbraco.org/wiki/user-groups/australia-and-new-zealand/…

10voto

wingyip Points 2094

Cette question est vraiment ancienne et pas pertinente pour les versions actuelles d'Umbraco.

Juste au cas où quelqu'un ne le saurait pas encore - Toutes les versions d'Umbraco depuis 2013 (6, 7 et maintenant 8) prennent en charge MVC

5voto

Tim Saunders Points 3694

Après avoir examiné le billet de blog, il semble que ce n'est pas réellement intégré à Umbraco mais fonctionne aux côtés d'Umbraco.

En effet, il s'agit de son propre gestionnaire Http. Cela signifie qu'il contourne le gestionnaire Http Umbraco et toute une série de fonctionnalités relatives aux modèles et au CMS Umbraco lui-même.

Rendre MVC utilisable avec les modèles Umbraco n'est (probablement) pas possible sans modifications de l'application de base (à partir de la version 4+). Cependant, cela ne signifie pas que vous ne pouvez pas utiliser MVC aux côtés d'Umbraco avec Umbraco agissant comme référentiel de contenu pour une application MVC.

Vous pourriez facilement créer des contrôleurs MVC qui récupèrent des données à partir d'Umbraco et les rendent disponibles à vos vues. Par exemple, vous pourriez utiliser Linq2Umbraco pour cela.

Si vous fournissez plus de détails sur les erreurs précises que vous rencontrez et exactement ce que vous essayez de réaliser, la solution pourrait être dans la manière dont vous structurez votre application plutôt que d'essayer de forcer Umbraco 4+ à faire quelque chose qui sera natif dans Umbraco 5 (dont la sortie est prévue cette année). Le code source pour la version 5 est disponible sur Codeplex et pourrait être un bon endroit pour jeter un coup d'œil et voir comment l'équipe principale d'Umbraco aborde cela.

Il y a une ancienne discussion à ce sujet ici : http://forum.umbraco.org/yaf_postst5106_Using-ASPNET-MVC-with-Umbraco.aspx

et plus récemment ici : http://our.umbraco.org/forum/getting-started/installing-umbraco/2668-Use-Umbraco-with-aspnet-MVC

Des discussions supplémentaires peuvent être trouvées ici : http://our.umbraco.org/forum/developers/extending-umbraco/17523-Umbraco-461-and-MVC-3

et même ici : http://our.umbraco.org/forum/developers/extending-umbraco/6837-Umbraco-Website-And-MVC-Website-In-ONE

2voto

Aaron Points 865

Au lieu d'essayer d'utiliser les contrôles Umbraco, vous pourriez envisager d'écrire quelques méthodes d'extension HtmlHelper qui utilisent la classe umbraco.NodeFactory.Node pour obtenir le contenu que vous essayez d'afficher dans vos vues. Écrire des méthodes qui imitent (ou simplifient en fonction de vos besoins) umbraco.presentation.templateControls.Item et umbraco.presentation.templateControls.Macro peut être suffisant pour vous.

ÉDITER

J'ai suivi cette voie avec un certain succès. J'ai également jeté un coup d'œil au code source de MVC pour savoir comment les vues partielles étaient ajoutées à la collection sous-jacente des contrôles de formulaire web. J'ai fini par écrire une classe qui hérite de la classe umbraco.presentation.templateControls.Macro qui ressemble beaucoup à la classe System.Web.Mvc.ViewUserControl.

0voto

Kamalakar Points 29

Umbraco migre maintenant vers dotnet core https://umbraco.com/blog/net-core-alpha-release/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X