ホームページ > バックエンド開発 > C++ > ASP.NET MVC でビューの検索場所をカスタマイズして、特定のサブフォルダー内のビューを検索するにはどうすればよいですか?

ASP.NET MVC でビューの検索場所をカスタマイズして、特定のサブフォルダー内のビューを検索するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-26 00:56:10
オリジナル
594 人が閲覧しました

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

asp.net mvcのカスタム表示場所

MVCプロジェクトを整理する場合、表示操作のカスタム場所を指定する必要がある場合があります。これにより、コントローラーは特定のサブフォルダーのビューを見つけて、独自のディレクトリ構造を持つプロジェクトに適応できます。

質問:

次のレイアウトを備えたプロジェクトの

次のコードを備えた

demoarea1Controller:

<code>/Controllers
    /Demo
        /DemoArea1Controller
        /DemoArea2Controller
        等等...
/Views
    /Demo
        /DemoArea1/Index.aspx
        /DemoArea2/Index.aspx</code>
ログイン後にコピー

「ビュー「インデックス」またはその母版ページ」が引き起こされます。デフォルトでは、MVCは次の場所で検索します。

<code>public ActionResult Index()
{
    return View();
}</code>
ログイン後にコピー
〜/views/controllname/actionname.aspx

〜/views/controllname/actionname.ascx
  • 〜/views/shared/actionname.aspx
  • 〜/views/shared/actionname.ascx
  • この問題は、コントローラーが〜/views/demoarea1でindex.aspxビューを見つけることを期待しているためですが、ビューは〜/views/demo/demoarea1/index.aspxにあります。
  • 解決策:

ビューの検索操作のカスタム位置を指定するには、WebFormViewEngineクラスを拡張してください:

この拡張エンジンでは、追加の検索位置〜/demo/views/{1}/{0} .aspxがビュー位置リストに追加されました。これにより、デモの命名スペースにあるコントローラーがデモビンカーのビンカーでビューを見つけることができます。 global.asax.csのapplication_startメソッドでカスタムビューエンジンを登録することを忘れないでください:

カスタムビューエンジンを作成することにより、開発者はASP.NET MVCプロジェクトで柔軟性と組織性を提供するために、ビューの追加の検索場所を簡単に指定できます。
<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>
ログイン後にコピー

以上がASP.NET MVC でビューの検索場所をカスタマイズして、特定のサブフォルダー内のビューを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート