When I try to propagate an exception and pass it as parameter into my ErrorController, it is always null.
Controller
public ActionResult Test()
{
    try
    {
        throw new Exception("ALGO");
        //
        return View();
    }
    catch (Exception ex)
    {
        return RedirectToAction("Error", "Error",
                new
                {
                    exception = ex,
                    controller = this.ControllerContext.RouteData.Values["controller"],
                    action = this.ControllerContext.RouteData.Values["action"]
                });
    }
}
ErrorController
public ActionResult Error(Exception exception, string controller, string action)
{
    // exception is always null...
    Response.StatusCode = 500;
    ViewBag.exception = new HandleErrorInfo(exception, controller, action);
    return View();
}
Any idea how to get the exception properly?
Is there a better approach for error handling?
I also tried this one but I got several errors because of parameteless constructor for handleerrorinfo
 
    