我正在尝试使用路径检查是否存在一些视图。但即使它们确实存在,也无法找到它们。
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"
是相同的视图,但只能找到后者。
答案 0 :(得分:7)
当您使用路径时,您还需要指定扩展名:
~/Error/General.cshtml
~/Shared/Error.cshtml
...
如果您没有指定路径,则不需要扩展名,因为在这种情况下,视图引擎会遵循标准惯例来发现视图。