2013-07-17 26 views
0

这是我的代码。当我将响应重定向到动作时,模型联编程序不起作用。重定向到带有参数和模型绑定的操作不起作用

任何人都可以帮助我吗?

public void OnException(ExceptionContext filterContext) 
{ 
    var action = filterContext.RouteData.Values["action"]; 
    var controller = filterContext.RouteData.Values["controller"]; 
    var values = filterContext.RouteData.Values; 
    var exceptionMessage = filterContext.Exception.Message; 
    var exception = filterContext.Exception; 

    filterContext.ExceptionHandled = true; 
    ExceptionInfo ExceptionInfo = new ExceptionInfo(); 
    ExceptionInfo.ActionName = action.ToString(); 
    ExceptionInfo.ControllerName = controller.ToString(); 
    ExceptionInfo.ExceptionMessage = exceptionMessage; 

    filterContext.HttpContext.Response.RedirectToRoute(new 
    { 
    action = "Error", 
    controller = "Home", 
    ExceptionInfo = ExceptionInfo 
    }); 
} 

public ActionResult Error(ExceptionInfo ExceptionInfo) 
{ 
    return View(ExceptionInfo); 
} 

回答

0

我建议使用Controller.RedirectToAction代替。有很多重载,它应该使您能够重新路由到您需要的控制器/操作,并使用任何相关的参数。

+0

我试过,但相同的结果 –

0

改为如下代码:

public void OnException(ExceptionContext filterContext) 
{ 
    var action = filterContext.RouteData.Values["action"]; 
    var controller = filterContext.RouteData.Values["controller"]; 
    var values = filterContext.RouteData.Values; 
    var exceptionMessage = filterContext.Exception.Message; 
    var exception = filterContext.Exception; 

    filterContext.ExceptionHandled = true; 
    ExceptionInfo ExceptionInfo = new ExceptionInfo(); 
    ExceptionInfo.ActionName = action.ToString(); 
    ExceptionInfo.ControllerName = controller.ToString(); 
    ExceptionInfo.ExceptionMessage = exceptionMessage; 

    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { 
    action = "Error", 
    controller = "Home", 
    exceptionInfo = ExceptionInfo 
    })); 
} 

public ActionResult Error(ExceptionInfo exceptionInfo) 
{ 
    return View(exceptionInfo); 
} 
+0

它dosent作品 –

+0

究竟会发生什么? – ataravati

+0

我得到了同样的结果,null :(但是如果我用参数重定向它参数woks –