在MVC 3中HandleErrorAttribute的优点

时间:2014-01-05 21:59:52

标签: c# asp.net-mvc visual-studio-2010 asp.net-mvc-3

我正在尝试理解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

  1. HandleErrorAttribute有什么用?
  2. <customErrors..上使用它有什么好处?
  3. <customErrors..
  4. 无法实现哪些目标无法实现?

1 个答案:

答案 0 :(得分:0)

1)HandleErrorAttributeMSDN)是FilterAttribute,用于处理引发错误的控制器操作。我建议阅读MSDN页面上的文档,因为它准确描述了它的作用以及它可以采用的构造函数。此外,在您的webconfig中,您必须将customErrors部分设置为。

<system.web>
  <customErrors mode="On" defaultRedirect="Error" />
</system.web>

2)现在,自定义错误部分用于允许Asp.Net应用程序在引发错误(异常)时控制页面的行为。 (MSDN)当应用程序异常发生时,自定义错误设置为OnRemoteOnly时,应用程序将使用Web.config中定义的规则来显示错误消息或重定向到一页。

3)使用HandleErrorAttribute,您可以根据引发的异常类型提供不同的重定向\视图。

我建议你查看这个SO主题以获取更多信息(阅读Elijah Manor的帖子)。 ASP.NET MVC HandleError

干杯。