2

所以我的网站在生产中运行并且间歇性地(是的,呃)......这些重定向似乎没有发生

public ActionResult Create()
{
    string newuserid = BizLayer.CreateUser();

    return RedirectToRoute("MyController/MyAction", new { userid = newuserid });
}

用户创建得很好,代码肯定会通过生成 newuserid,但永远不会输入下一个控制器操作。所以我想知道我是否正确理解重定向。在输入新操作之前,新 URL 是否会被发送回客户端?输入 Create() 后,下一个操作中的处理是不可避免的(假设 Bizlayer 中没有崩溃)还是存在可以阻止它的浏览器情况?

这是它应该去的地方:

public ActionResult MyAction(string userid, DateTime? date)

这是路由:

routes.MapRoute(
      "MyController/MyAction", // Route name
      "MyController/MyAction/{userid}/{date}", // URL with parameters
      new
      {
          controller = "MyController",
          action = "MyAction",
          date = UrlParameter.Optional
      } // Parameter defaults
      );

本质上我想知道,客户端可以拒绝 MVC 重定向并防止重定向到新的控制器操作发生吗?

4

3 回答 3

0

你有没有尝试过:

public ActionResult Create()
{
    string newuserid = BizLayer.CreateUser();

    return RedirectToRoute("MyController/MyAction", new { userid = newuserid, date = null });
}
于 2012-05-07T20:09:40.373 回答
0

你试过这个吗?

return RedirectToAction("MyAction", "MyController", new { userid = newuserid });
于 2012-05-07T20:09:41.303 回答
0

您是否尝试过指定 RouteValueDictionary 中的所有值?你可能想试一试...

RedirectToRoute(new { Controller = ..., Action=..., userid=...})
于 2012-05-07T20:04:44.010 回答