これまで ASP.NET MVC v1 および v2 で以下のコードを使用していましたが、今日アプリケーションにエリアを追加したところ、エリアのコントローラーが Areas/Views/controllerView フォルダーにビューを見つけることができませんでした。これらの 4 つの標準フォルダーを検索するという非常によく知られた例外を発行しましたが、領域の下は検索しませんでした..
エリアで動作するようにコードを変更するにはどうすればよいですか? Areas をサポートする ASP.NET MVC 2 のカスタム ビュー エンジンの例でしょうか。ネット上の情報は非常に少ないです..
コードは次のとおりです。
public class PendingViewEngine : VirtualPathProviderViewEngine
{
public PendingViewEngine()
{
// This is where we tell MVC where to look for our files.
/* {0} = view name or master page name
* {1} = controller name */
MasterLocationFormats = new[] {"~/Views/Shared/{0}.master", "~/Views/{0}.master"};
ViewLocationFormats = new[]
{
"~/Views/{1}/{0}.aspx", "~/Views/Shared/{0}.aspx", "~/Views/Shared/{0}.ascx",
"~/Views/{1}/{0}.ascx"
};
PartialViewLocationFormats = new[] {"~/Views/{1}/{0}.ascx", "~/Views/Shared/{0}.ascx"};
}
protected override IView CreatePartialView(ControllerContext controllerContext, string partialPath)
{
return new WebFormView(partialPath, "");
}
protected override IView CreateView(ControllerContext controllerContext, string viewPath, string masterPath)
{
return new WebFormView(viewPath, masterPath);
}
}