J'ai configuré mon site MVC 5 par catégorie, puis contrôleur, modèle, afficher sous-dossiers dans chaque catégorie, à savoir les dossiers de dossier racine \ Home et \ Products aurait ces trois sous -folders ainsi qu'un dossier racine \ Shared \ Views. J'ai suivi un article formidable mon Matthew Renz, Clean Architecture in ASP.NET MVC 5. Fait en partie par la création d'un RazorViewEngine personnalisé, plus précisément:ASP.NET MVC 5 personnalisé RazorViewEngine pour une structure de portail multiple
public CustomRazorViewEngine()
{
ViewLocationFormats = new string[]
{
"~/{1}/Views/{0}.cshtml",
};
PartialViewLocationFormats = new string[]
{
"~/Shared/Views/{0}.cshtml"
};
}
Il n'y a pas beaucoup de changements au-delà. Je me demandais si je pouvais construire sur cette idée et configurer un projet de site Web avec un dossier racine \ Portals et des sous-dossiers pour chaque portail en utilisant un identifiant (nom ou numéro) - similaire à DNN. Les modifications apportées à la vue du code du moteur de rasoir personnalisé peut regarder un peu comme:
public CustomRazorViewEngine()
{
ViewLocationFormats = new string[]
{
"~/Portals/{2}/{1}/Views/{0}.cshtml",
};
PartialViewLocationFormats = new string[]
{
"~/Portals/{2}/Shared/Views/{0}.cshtml"
};
}
Je ne sais pas où les valeurs {0} et {1} viennent, cependant. Je pourrais trouver un moyen d'obtenir {2}, le nom du site du portail. Les chemins relatifs pour le reste du site, tels que \ Content, \ Scripts, etc. Je crois que je pourrais me structurer.
Le but de cette approche est de fournir au client une solution dans laquelle le code commun peut être réutilisé pour prendre en charge un certain nombre de portails dotés d'habillages et de fonctions uniques. Merci pour votre temps et considération et laissez-moi savoir si vous avez des questions.
John
Merci Ron! Je pensais que Core aurait quelque chose en plus de zones. Je vais devoir lire sur les zones comme cela a été un moment. Dans cette convention sur la configuration, les zones signifient peut-être plus que des mots arbitraires, c'est-à-dire des portails. Je voudrais garder cela ouvert pour voir si d'autres ont fait ce w/o zones et non avec View ("somepathtotheview.cshtml", modèle), etc –
Na, ils ont à peu près apporté le concept de la région vers l'avant. Mais le noyau Asp.Net est super configurable, donc vous pouvez vraiment structurer votre projet comme vous le souhaitez si vous choisissez d'implémenter de nouvelles conventions pour votre projet. –