RedirectToRouteResult到UrlHelper.Action

时间:2013-05-07 09:57:42

标签: asp.net-mvc-3

我在控制器方法中调用了以下方法:

RedirectToRouteResult redirect = GetRedirect();

它提供了在HttpPost操作中必须将用户发送到的重定向。 我需要这个,因为它不是明确的用户必须被发送到的地方因为有不同的可能性去发送表格后调用帖子的get方法,例如: G:

第A页 - >创建一个Get - >创建帖子--->发回页面A

第B页 - >创建一个Get - >创建帖子--->发回页面B

return Json(new { redirectTo = UrlHelper.Action("Method", "Controller") });

我现在想使用我的重定向而不是硬编码字符串。 所以我必须转换RedirectToRouteResult对象或使用UrlHelper.Action的替代方法,但我不知道如何。

1 个答案:

答案 0 :(得分:1)

好的,如果我理解正确,那么你可以通过这样做来使网址生成动态:

var url = Url.Action(
    redirect.RouteValues["controller"],
    redirect.RouteValues["action"]);
return Json(new { redirectTo = url  });

或更好的方法,特别是如果ActionResult有路由值:

return Json(new { redirectTo = Url.RouteUrl(redirect.RouteValues) });