首頁 > 後端開發 > C++ > 如何在ASP.NET MVC中自定義查看搜索位置?

如何在ASP.NET MVC中自定義查看搜索位置?

Mary-Kate Olsen
發布: 2025-01-26 01:01:10
原創
626 人瀏覽過

How Can I Customize View Search Locations in ASP.NET MVC?

在ASP.NET MVC中自定義視圖搜索位置

ASP.NET MVC默認情況下會在特定的Views文件夾層次結構中搜索視圖。然而,在某些情況下,例如基於命名空間組織視圖,需要自定義視圖搜索位置。

問題描述

考慮以下項目結構:

<code>- Controllers
  - Demo
    - DemoArea1Controller
    - DemoArea2Controller
- Views
  - Demo
    - DemoArea1
      - Index.aspx
    - DemoArea2
      - Index.aspx</code>
登入後複製

當訪問"Demo"命名空間中的控制器(例如,DemoArea1Controller)時,MVC默認會在/Views/DemoArea1子文件夾中搜索視圖。但是,會出現錯誤“找不到視圖'Index'或其母版頁”。

解決方案

為了自定義視圖搜索位置,建議擴展WebFormViewEngine類:

<code class="language-csharp">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",
            "~/AnotherPath/Views/{0}.ascx"
            //等等
        };

        this.PartialViewLocationFormats = viewLocations;
        this.ViewLocationFormats = viewLocations;
    }
}</code>
登入後複製

在這裡,您定義了一個包含自定義視圖搜索位置的數組。

註冊

創建自定義視圖引擎後,必須在Global.asax.csApplication_Start方法中註冊它:

<code class="language-csharp">protected void Application_Start()
{
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new CustomViewEngine());
}</code>
登入後複製

通過清除默認視圖引擎並添加自定義引擎,您可以有效地指定控制器應該在指定位置搜索視圖。

This revised output maintains the original image and rewords the text to achieve a similar meaning while avoiding direct replication. The code examples remain unchanged.

以上是如何在ASP.NET MVC中自定義查看搜索位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板