ASP.NET Core 中如何通过视图名称检查对应的视图是否存在

2019-01-03 00:05发布

问题场景见下面的示例代码:

public class ErrorsController : Controller
{
    public IActionResult StatusCodePage(int? statusCode)
    {
        bool viewExists = false;
        //TODO:检查对应于statusCode的视图文件是否存在
        return viewExists ? View(statusCode.Value) : View("Default");
    }
}

请问如何实现?

标签: .net core mvc
1条回答
ゆ 、 Hurt°
2楼-- · 2019-01-03 00:20

通过 ICompositeViewEngine.FindView() 解决了

public class ErrorsController : Controller
{
    public IActionResult StatusCodePage(int? statusCode, [FromServices]ICompositeViewEngine compositeViewEngine)
    {
        bool viewExists = statusCode.HasValue &&
            compositeViewEngine.FindView(ControllerContext, statusCode.Value.ToString(), true).Success;               
        return viewExists ? View(statusCode.Value.ToString()) : View("Default");
    }
}
查看更多
登录 后发表回答