尝试将FindView与路径一起使用

jga*_*fin 2 asp.net-mvc viewengine

我试图通过使用路径来检查是否存在一些视图.但即使它们确实存在,也无法找到它们.

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;
}
Run Code Online (Sandbox Code Playgroud)

以及我如何尝试查找视图:

var viewName = SelectFirstView(ctx, statusCodeName,
                               "~/Error/" + statusCodeName,
                               "~/Error/General",
                               "~/Shared/Error",
                               "Error");
Run Code Online (Sandbox Code Playgroud)

请注意,"~/Shared/Error"并且"Error"是相同的视图,但只找到后者.

Dar*_*rov 7

使用路径时,还需要指定扩展名:

~/Error/General.cshtml
~/Shared/Error.cshtml
...
Run Code Online (Sandbox Code Playgroud)

如果未指定路径,则不需要扩展名,因为视图引擎遵循标准约定来发现视图.