パスを使用して、いくつかのビューが存在するかどうかを確認しようとしています。ただし、ビューが存在していても見つかりません。
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"
は同じビューですが、後者のみが検出されることに注意してください。