1

我的控制器方法中有以下方法调用:

RedirectToRouteResult redirect = GetRedirect();

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

页面 A -> 创建一个获取 -> 创建一个帖子 ---> 发送回页面 A

页面 B -> 创建一个获取 -> 创建一个帖子 ---> 发送回页面 B

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

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

4

1 回答 1

1

好的,如果我理解正确,那么您可以通过执行以下操作使 url 生成动态:

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

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

return Json(new { redirectTo = Url.RouteUrl(redirect.RouteValues) });
于 2013-05-07T11:21:37.893 回答