在Visual Studio 2012中,我使用空模板创建了一个新的ASP.NET MVC3项目。然后创建具有以下ActionResult
一个HomeController
:MVC3 HandleError不适用于ASP.NET MVC3 EmptyTemplate项目
public ActionResult Index()
{
throw new Exception("oops!");
ViewBag.Message = "hello world";
return View();
}
接下来,我添加了一个简单视图为我的HomeController:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
和插入在{}根/web.config以下:
<customErrors mode="On"/>
最后,我修改/Views/Shared/Error.cshtml
的样子:
@model System.Web.Mvc.HandleErrorInfo
@{
//Layout = null;
ViewBag.Title = "Error";
}
<h2>
Sorry, an error occurred while processing your request.
</h2>
当我运行该项目,我得到:
500内部服务器错误。网站无法显示该页面...
然后,我决定使用互联网模板来创建另一个ASP.NET MVC3项目。在HomeController
的内部,我抛出了一个Exception
,就像我上面所做的一样,并且我在Web.config中再次打开了customErrors
。当我运行该项目时,我得到正确的结果:
对不起,处理您的请求时发生错误。
这两个项目之间可能会丢失什么?
我已经一行一行通过Web.config并没有看到任何区别。 Global.asax文件不受两个项目的影响。
创建项目时添加这个项目:( –
你在IIS或IIS Express中运行,我不能重现该问题,我总是得到正确的结果(错误视图) –
hmm。两个项目最初运行在IIS Express,但我在IIS中测试了它们,结果相同。 –