catch块中的MVC RedirectToAction

时间:2011-11-25 14:23:29

标签: asp.net-mvc redirecttoaction catch-block

如果try-block中的某些内容出错,我会尝试重定向到从一个控制器到另一个控制器的操作。我想要实现的是通过将所有错误引导到我的Homecontroller中的错误处理ActionResult,在不同控制器中出现问题时向用户呈现视图的一般方法。这基本上就是代码的样子:

    try
    {
        Code that may go wrong
    }
    catch (Exception e)
    {
        set the errorcode (integer)

        Logg the error (write a simple textfile)

        RedirectToAction("ErrorHandling", "Home", errorcode);
    }

在Homecontroller中,我想生成一个视图,告诉用户出现了问题:

    public ActionResult ErrorHandling(int errorcode)
    {
        do something with the errorcode

        return View(different view depending on errorcode);
    }

我的问题是,如果我操纵代码以便抛出异常,则执行catcblock中的每一步,除了忽略RedirectToAction。我错过了什么?我有点新手,所以希望有一个简单的答案,我找不到......

1 个答案:

答案 0 :(得分:1)

在你的catch区块尝试

  return new RedirectToRouteResult(new RouteValueDictionary
    { 
        {"Controller", "Home"}, 
        {"Action", "ErrorHandling"},
        {"errorcode", errorcode}
    });

也许你只是忘记了代码中的回复:

return RedirectToAction("ErrorHandling", "Home", errorcode);