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

RouteValueDictionary のすべての値を指定しようとしましたか? あなたはそれを試してみたいかもしれません...

RedirectToRoute(new { Controller = ..., Action=..., userid=...})
于 2012-05-07T20:04:44.010 に答える
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 に答える