c# – MVC3 HandleError不显示错误页面
我一直在关注HandleError属性的指南:
blogs.msdn.com 我这样使用(AccountController): [HandleError(View="ErasErrorPage")] public ActionResult Index() { ViewBag.admins = _accountMapper.GetAdmins(false); ViewBag.members = _accountMapper.GetMembers(false); ViewBag.Countries = _countryMapper.GetCountries(); return View(); } 此代码抛出异常,因为_accountMapper.GetAdmins(false)因System.Data.EntityException而失败. 我已将ErasErrorPage视图放在我的共享文件夹中,并添加了< customErrors mode =“On”/>但是ErasErrorPage没有显示出来.当错误发生时我得到的只是一个黄色的死亡屏幕说: 显然,将模式设置为“Off”或“RemoteOnly”并不能解决问题. 任何人都知道为什么这不起作用? 编辑 如果我直接浏览到http://localhost:3527/Account/Index,我会得到正确的ErasErrorPage,但我不希望这样.我希望网站在某处抛出异常时自动重定向到该页面.这可能吗? EDIT2 我在每个Public ActionResult methodName(){…}方法之前放置了[HandleError(View =“ErasErrorPage”)]属性,我仍然得到黄色死亡屏幕说我需要将模式更改为“关闭“或”RemoteOnly“…… 解决方法
确保ErasErrorPage视图本身不会引发异常.以下是我所做的步骤,对我来说效果很好:
>使用默认的Visual Studio向导创建一个新的ASP.NET MVC 3项目 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>ErasErrorPage</title> </head> <body> <div> OOPS </div> </body> </html> >将HomeContoller修改为如下所示: public class HomeController : Controller { [HandleError(View = "ErasErrorPage")] public ActionResult Index() { throw new Exception("oops"); } } >在web.config中输入: <customErrors mode="On" /> >导航到/ Home / Index =>自定义错误页面按预期显示 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |