首页 新闻 会员 周边

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

1
悬赏园豆:30 [已解决问题] 解决于 2018-07-15 21:41

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

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

请问如何实现?

dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2018-07-15 17:37
< >
分享
最佳答案
2

通过 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");
    }
}
dudu | 高人七级 |园豆:31003 | 2018-07-15 21:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册