我想捕获自定义类型MissingSettingException
的例外情况,并显示自定义错误页面。
我使用FilterConfig指定要显示的视图:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute
{
ExceptionType = typeof(MissingSettingException),
View = "MissingSetting",
Order = 2
});
filters.Add(new HandleErrorAttribute());
}
}
如果我将视图文件MissingSetting.cshtml
保留在~/Views/Shared
中的项目中,则此方法有效,但我有多个自定义错误页面,而是将它们保存在~/Views/Error/...
的子文件夹中。
如果我将MissingSetting.cshtml
移到我首选的位置,我无法弄清楚如何让我的过滤器显示正确的视图。我将得到一个错误页面说"处理您的请求时发生异常。此外,执行第一个异常的自定义错误页面时发生另一个异常。请求已被终止。"。我试过了:
View = "MissingSetting"
(无变化)View = "~/Error/MissingSetting"
View = "~/Error/MissingSetting.cshtml"
View = "~Error/MissingSetting"
View = "~Error/MissingSetting.cshtml"
有什么神奇的词汇?
答案 0 :(得分:0)
这就是我所做的:
~/Views/Shared/Errors
View = "Errors/MissingSetting"
我已经搜索到足够多,我的眼睛可能会茫然,但我没有找到任何线索,可以将我的错误视图文件夹保存在网站根目录中,或~/Views/Shared
之外的任何地方。至少它们可以包含在子文件夹中。
如果有人愿意分享,还是对备用解决方案感到好奇。