Maison > développement back-end > C++ > Comment puis-je personnaliser les emplacements de recherche de vues dans ASP.NET MVC pour rechercher des vues dans des sous-dossiers spécifiques ?

Comment puis-je personnaliser les emplacements de recherche de vues dans ASP.NET MVC pour rechercher des vues dans des sous-dossiers spécifiques ?

Mary-Kate Olsen
Libérer: 2025-01-26 00:56:10
original
594 Les gens l'ont consulté

How Can I Customize View Search Locations in ASP.NET MVC to Find Views in Specific Subfolders?

Personnaliser la position de recherche de la vue dans ASP.NET MVC

Lors de l'organisation d'un projet MVC, il peut être nécessaire de spécifier un emplacement personnalisé pour les opérations de recherche de vues. Cela permet au contrôleur de rechercher des vues dans des sous-dossiers spécifiques pour accueillir des projets avec des structures de répertoires uniques.

Question :

Dans un projet avec la disposition suivante :

<code>/Controllers
    /Demo
        /DemoArea1Controller
        /DemoArea2Controller
        等等...
/Views
    /Demo
        /DemoArea1/Index.aspx
        /DemoArea2/Index.aspx</code>
Copier après la connexion

Utilisez DemoArea1Controller avec le code suivant :

<code>public ActionResult Index()
{
    return View();
}</code>
Copier après la connexion

entraînera l'erreur "Afficher 'index' ou sa page maître introuvable". Par défaut, MVC recherche les vues dans :

  • ~/Views/ControllerName/ActionName.aspx
  • ~/Views/ControllerName/ActionName.ascx
  • ~/Views/Shared/ActionName.aspx
  • ~/Views/Shared/ActionName.ascx

Ce problème se produit car le contrôleur s'attend à trouver la vue Index.aspx dans ~/Views/DemoArea1, mais la vue se trouve dans ~/Views/Demo/DemoArea1/Index.aspx.

Solution :

Pour spécifier un emplacement personnalisé pour les opérations de recherche de vue, étendez la classe WebFormViewEngine :

<code>public class CustomViewEngine : WebFormViewEngine
{
    public CustomViewEngine()
    {
        var viewLocations = new[] {
            "~/Views/{1}/{0}.aspx",
            "~/Views/{1}/{0}.ascx",
            "~/Views/Shared/{0}.aspx",
            "~/Views/Shared/{0}.ascx",
            "~/Demo/Views/{1}/{0}.aspx",
            "~/Demo/Views/{1}/{0}.ascx"
        };

        this.PartialViewLocationFormats = viewLocations;
        this.ViewLocationFormats = viewLocations;
    }
}</code>
Copier après la connexion

Dans ce moteur étendu, un emplacement de recherche supplémentaire ~/Demo/Views/{1}/{0}.aspx est ajouté à la liste des emplacements de vue. Cela permet aux contrôleurs de l’espace de noms Demo de rechercher des vues dans le sous-dossier Demo Views.

N'oubliez pas d'enregistrer votre moteur de vue personnalisé dans la méthode Application_Start de Global.asax.cs :

<code>protected void Application_Start()
{
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new CustomViewEngine());
}</code>
Copier après la connexion

En créant un moteur d'affichage personnalisé, les développeurs peuvent facilement spécifier des emplacements de recherche supplémentaires pour les vues, offrant ainsi flexibilité et organisation dans les projets ASP.NET MVC.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal