ビュー解像度の問題を解決するための 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 サイトの他の関連記事を参照してください。