ホームページ >バックエンド開発 >C++ >「ビューが見つかりません」エラーを回避するために ASP.NET MVC でビューの場所をカスタマイズするにはどうすればよいですか?

「ビューが見つかりません」エラーを回避するために ASP.NET MVC でビューの場所をカスタマイズするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-26 01:11:08691ブラウズ

How Can I Customize View Locations in ASP.NET MVC to Avoid

ビュー解像度の問題を解決するための ASP.NET MVC のビューの場所のカスタマイズ

ASP.NET MVC プロジェクトでは、ビューの場所がデフォルトの検索パスと一致しないため、ビュー解決の問題が発生することがあります。 これにより、「ビュー 'インデックス' またはそのマスターが見つかりませんでした」などのエラーが発生することがよくあります。 解決策は、カスタム ビューの場所を構成することです。

たとえば、コントローラーが /Controllers/Demo に存在し、ビューが /Views/Demo にある場合、MVC ランタイムに Demo サブフォルダーを参照するように指示する必要があります。これは、WebFormViewEngine.

を変更することで実現できます。

カスタム ビュー エンジンの作成:

まず、WebFormViewEngine を拡張するカスタム ビュー エンジン クラスを作成します。

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

        this.PartialViewLocationFormats = viewLocations;
        this.ViewLocationFormats = viewLocations;
    }
}</code>

このコードは、/Views/Demo パスを標準のビューの場所の形式に追加します。 {1} プレースホルダーはコントローラー名を表し、{0} はビュー名を表します。

カスタム ビュー エンジンの登録:

次に、Application_Start ファイルの Global.asax.cs メソッドでカスタム ビュー エンジンを登録します。

<code class="language-csharp">protected void Application_Start()
{
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new CustomViewEngine());
    // ... other application start code ...
}</code>

これにより、デフォルトのビュー エンジンがカスタムのビュー エンジンに置き換えられます。

この構成により、「Demo」名前空間内のコントローラーが「Demo」ビュー フォルダー内のビューを正しく見つけ、ビュー解像度の競合を解決し、適切に整理されたプロジェクト構造を維持できるようになります。

以上が「ビューが見つかりません」エラーを回避するために ASP.NET MVC でビューの場所をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。