2014-01-17 50 views
0

ControllerC/ActionA的標準MVC模式當控制器代碼剛剛聲明返回時,View()將查找ControllerC/ActionA.cshtml。我想這樣做,如果這樣的視圖不存在,它會尋找一些像Shared/Default.cshtml這樣的默認視圖。我怎樣才能做到這一點?MVC默認查找特定視圖

回答

1

我不知道MVC 5,但你可以從RazorViewEngine創建自定義類。

public class MyFallbackLocationViewEngine : RazorViewEngine 
{ 
    public MyFallbackLocationViewEngine() 
    { 
     // Keep default locations and add our own fallback view 
     List<string> newLocations = new List<string>(ViewLocationFormats); 
     newLocations.Add("~/Views/Shared/Default.cshtml"); 
     this.ViewLocationFormats = newLocations.ToArray(); 
    } 
} 

並將其添加到您的Application_Start:只要

// Clear default engines and add only yours 
ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new MyFallbackLocationViewEngine()); 

你可以自定義您的視圖引擎,你lilke儘可能多的和覆蓋等方法

+0

謝謝,我會測試這個和報到我可以 –

+0

不客氣。告訴我,如果它適用於MVC5 –

+0

工程就像一個魅力,非常感謝你 –