Je travaille sur le projet ASP.NET MVC 3. Je souhaite diviser les contrôleurs, les modèles et les vues dans des sous-dossiers par souci de simplicité. Je suis capable de le faire avec des contrôleurs et des modèles, mais lorsque je crée une vue, celle-ci se crée automatiquement dans le dossier racine Views
, y at-il un moyen de résoudre ce problème?
par exemple. Je peux créer
classe de modèle en tant que,
Models/Finance/Bank.cs
Models/Finance/Finance.cs
Models/Production/Production.cs
contrôleur en tant que,
Controllers/Finance/BankController/Create
Controllers/Finance/BudgetController/Create
Controllers/Production/ProcessController/Create
mais où j'ai essayé de créer la vue pour les actions ci-dessus, il crée dans,
Views/Bank/Create.aspx
Views/Budget/Create.aspx
Views/Process/Create.aspx
Je veux que ce soit comme
Views/Finance/Bank/Create.aspx
Views/Finance/Budget/Create.aspx
Views/Prodution/Process/Create.aspx
Est-il possible de créer des vues dans le même sous-dossier que celui créé pour les contrôleurs et les modèles? Merci!
les étapes suivantes ont fonctionné pour moi,
Créez les sous-dossiers que vous voulez dans Views
(dossier racine). dans mon cas, c'était Finance & Production.
Faites simplement glisser les dossiers créés automatiquement dans Views
dans les sous-dossiers appropriés. dans mon cas, Bank
& Budget
à Finance
et Process
à Production
Pendant que vous retournez une vue d'une action du contrôleur, indiquez le chemin complet de la vue sous la forme,
return
View("~/Views/Finance/Bank/Create.aspx")
return
View("~/Views/Finance/Budget/Create.aspx")
return
View("~/Views/Production/Process/Create.aspx")
Les modèles et les contrôleurs sont des fichiers source compilés. Ils sont compilés dans une DLL et, en tant que tels, ils peuvent littéralement être placés n'importe où dans le projet et cela ne fera aucune différence. Ces classes n'ont aucun concept de leur emplacement dans le système de fichiers car elles n'existent pas dans le système de fichiers une fois compilées.
Les vues, par contre, sont différentes. Ce sont des fichiers texte déployés sur le serveur, chargés et analysés au moment de l'exécution. Le framework doit donc savoir où les trouver.
Les outils créeront toujours les vues dans le dossier ~\Views\Controller (ou dans le dossier ~ Area\AreaName\Controller). Vous pouvez les déplacer n'importe où après, mais vous devrez donner le chemin d'accès complet à la méthode View () (y compris .cshtml). Ou vous devrez implémenter un ViewEngine personnalisé qui définit les chemins de recherche où vous le souhaitez.
Pour les futurs visiteurs: zones d'utilisation.
Procédure pas à pas: Organisation d'une application ASP.NET MVC à l'aide de zones
La vue nommée est Selon le nom du contrôleur, vous devez suivre la règle.
Si vous voulez créer Views/Admin/Create
, alors votre CustomerController.cs
devrait être nommé AdminController.cs
.