2016-07-15 4 views
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を返します。フォルダ構造は、両方のエンジンで同じです

+0

Global.asaxの2番目のビューエンジンをコメントアウトして、結果を確認してください – Marusyk

答えて

0

申し訳ありませんが、それはフォルダの命名に問題でした。問題が解決しました

関連する問題