我正在尝试理解MVC3中的HandleErrorAttribute。 (我还关注ScottGu中的旧文章)我将<customErrors mode="On" />
添加到web.config
文件中。所有错误都会重定向到\Views\Shared\Error.cshtml
视图。如果我保留HandleErrorAttribute
或从控制器中删除,则行为没有区别。
控制器代码
public class HomeController : Controller
{
[HandleError]
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
throw new Exception();
return View();
}
}
此外,我在一些文章和SO帖子中显示,使用<error redirect="..."/>
,请求可以重定向到所需的视图。
Qestions
HandleErrorAttribute
有什么用?<customErrors..
上使用它有什么好处?<customErrors..
答案 0 :(得分:0)
1)HandleErrorAttribute
(MSDN)是FilterAttribute
,用于处理引发错误的控制器操作。我建议阅读MSDN页面上的文档,因为它准确描述了它的作用以及它可以采用的构造函数。此外,在您的webconfig中,您必须将customErrors部分设置为。
<system.web>
<customErrors mode="On" defaultRedirect="Error" />
</system.web>
2)现在,自定义错误部分用于允许Asp.Net应用程序在引发错误(异常)时控制页面的行为。 (MSDN)当应用程序异常发生时,自定义错误设置为On
或RemoteOnly
时,应用程序将使用Web.config中定义的规则来显示错误消息或重定向到一页。
3)使用HandleErrorAttribute,您可以根据引发的异常类型提供不同的重定向\视图。
我建议你查看这个SO主题以获取更多信息(阅读Elijah Manor的帖子)。 ASP.NET MVC HandleError
干杯。