如果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。我错过了什么?我有点新手,所以希望有一个简单的答案,我找不到......
答案 0 :(得分:1)
在你的catch区块尝试
return new RedirectToRouteResult(new RouteValueDictionary
{
{"Controller", "Home"},
{"Action", "ErrorHandling"},
{"errorcode", errorcode}
});
也许你只是忘记了代码中的回复:
return RedirectToAction("ErrorHandling", "Home", errorcode);