首页新闻找找看学习计划

使用微软的MVC,请问错误页路径不正确

0
悬赏园豆:5 [待解决问题]

目前使用了微软的MVC4搭建了一个网站,在web.config中配置了错误页:

<customErrors mode="On" defaultRedirect="~/ErrorPage/default.html">
<error statusCode="403" redirect="~/ErrorPage/403.html" />
<error statusCode="404" redirect="~/ErrorPage/404.html" />
<error statusCode="500" redirect="~/ErrorPage/500.html" />
</customErrors>

现在有个问题,如果是路径在根目录下的Controller出错,是会正确跳转到错误页中,可是如果在二级目录下的控制器,则会找不到错误页,可我配置明明是根目录,“~”就是指网站根目录吧。我在文档中查过了就是这样配置。

比如路径是 /User/Details ,系统会在/User/Details/ErrorPage/500.html 查找,怎么解决这个问题呢?谢谢

问题补充:

试过了,去掉"~"也是找不到

无名小站的主页 无名小站 | 初学一级 | 园豆:198
提问于:2013-10-14 10:38
< >
分享
所有回答(5)
0

试试把~/ErrorPage/500.html改为/ErrorPage/500.html

dudu | 园豆:41258 (高人七级) | 2013-10-14 10:50
0

楼上正解。

````` | 园豆:14268 (专家六级) | 2013-10-14 11:16
0

封装一个异常处理的过滤器 调整错误页

public class ExceptionFilterAttribute : HandleErrorAttribute {
        public override void OnException(ExceptionContext filterContext) {
            base.OnException(filterContext);
            string excepitonInfo = filterContext.Exception.ToString();
            LogHelper.OutputLog(excepitonInfo);
            filterContext.HttpContext.Response.Redirect("/WebPages/Error.htm");
        }
    }

在Global.asax文件 修改RegisterGlobalFilters的过滤器

 public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
            filters.Add(new ExceptionFilterAttribute()); //替换为处理异常的过滤器
        }
秋壶冰月 | 园豆:5441 (大侠五级) | 2013-10-14 13:13
0

以前貌似遇到过类似的状况,你的ErrorPage文件夹是存放在根目录下还是在Views里?

一般MVC查找页面,先在mvc根目录下查找页面名称,然后再通过控制器查找对应Views里页面名称,如果你直接在Views里创建了ErrorPage文件夹,是肯定找不到的,因为它无法通过控制器找到对应Views里的页面。个人拙见,希望能帮到。

only-time | 园豆:4 (初学一级) | 2013-12-04 01:44
0

路径问题。你在逐鹿有注册那边把html的路径给忽略试试

mushishi | 园豆:230 (菜鸟二级) | 2015-01-18 13:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册