2
ビュー と、このクラスから派生した2つのエンジンが見つからない理由ASP.NET MVC 4、カスタムエンジンは、私は、カスタム・ビュー・エンジンのクラスを持っている
public class MyViewEngine : RazorViewEngine
{
public string UIFramework { get; set; }
public MyViewEngine(string uiFramework)
{
UIFramework = uiFramework;
this.ViewLocationFormats = new[]
{
string.Format("~/Views/{0}/{{1}}/{{0}}.cshtml", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/{{1}}/{{0}}.vbhtml", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/{{1}}/{{0}}.aspx", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/{{1}}/{{0}}.ascx", this.UIFramework ?? string.Empty),
};
this.PartialViewLocationFormats = new[]
{
string.Format("~/Views/{0}/Shared/{{0}}.cshtml", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/Shared/{{0}}.vbhtml", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/Shared/{{0}}.aspx", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/Shared/{{0}}.ascx", this.UIFramework ?? string.Empty),
};
this.MasterLocationFormats = new[]
{
string.Format("~/Views/{0}/Shared/{{0}}.cshtml", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/Shared/{{0}}.vbhtml", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/Shared/{{0}}.aspx", this.UIFramework ?? string.Empty),
string.Format("~/Views/{0}/Shared/{{0}}.ascx", this.UIFramework ?? string.Empty),
};
}
}
とGlobal.asaxの
におけるこれら2つのエンジンViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MyViewEngine("First"));
ViewEngines.Engines.Add(new MyViewEngine("Second"));
第2ビューエンジンでは「下」のビューを見つけるのに問題はありませんが、最初に下位のビューは見つかりません。私はViewEngineResultの検索された場所が正しいことを知ることができ、Engineは自分のビューを見るはずです。私のビューの名前も正しいですが、ViewEngineResultはViewプロパティでnullを返します。フォルダ構造は、両方のエンジンで同じです
Global.asaxの2番目のビューエンジンをコメントアウトして、結果を確認してください – Marusyk