2

如果尝试块中的某些内容出错,我正在尝试将操作从一个控制器重定向到另一个控制器。我想要实现的是通过将所有错误定向到我的 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 被忽略之外。我错过了什么?我对此有点陌生,所以希望有一个我无法找到的简单答案......

4

1 回答 1

2

在你的 catch 块中尝试

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

也许您只是忘记了代码中的返回:

return RedirectToAction("ErrorHandling", "Home", errorcode);
于 2011-11-25T14:28:55.053 回答