2011-05-17 24 views
1

我試圖通過使用路徑來檢查是否存在幾個視圖。但即使它們確實存在,也不能發現這些觀點。嘗試使用FindView和路徑

private string SelectFirstView(ControllerContext ctx, params string[] viewNames) 
{ 
    return viewNames.First(view => ViewExists(ctx, view)); 
} 

private bool ViewExists(ControllerContext ctx, string name) 
{ 
    var result = ViewEngines.Engines.FindView(ctx, name, null); 
    return result.View != null; 
} 

而且我如何努力找到意見:

var viewName = SelectFirstView(ctx, statusCodeName, 
           "~/Error/" + statusCodeName, 
           "~/Error/General", 
           "~/Shared/Error", 
           "Error"); 

注意"~/Shared/Error""Error"是相同的觀點,但只有後者被發現。

回答

6

當你與路徑工作,你需要指定擴展以及:

~/Error/General.cshtml 
~/Shared/Error.cshtml 
... 

如果不指定路徑,你並不需要擴展在這種情況下,視圖引擎遵循標準大會發現意見。

相關問題