2016-11-09 76 views
1

私はASP.NET MVCアプリケーションを持っています。私のアプリはT4MVCを使用しています。私のコントローラでは、あるアクションから別のアクションにリダイレクトする必要があります。これを行うと、クエリ文字列値を追加する必要があります。クエリ文字列の値を指定せずに正常にリダイレクトできますが、クエリ文字列の値を正しく適用できませんでした。私は./action-2を訪問したときにASP.NET MVC - コントローラのRedirectToActionにクエリ文字列値を追加

[HttpPost] 
[ValidateAntiForgeryToken] 
public virtual ActionResult Action1() 
{       
    return RedirectToAction(MVC.MyController.Action2().AddRouteValue("id", "5")); 
} 

[Route("action-2")] 
public virtual ActionResult Action2(string input) 
{ 
    ViewBag.Input = input; 
    return View(viewModel); 
} 

Action2が正常に動作します:私の行動は次のようになります。私はまた、Action1に正常にPOSTすることができます。しかし、リダイレクトが機能しないとき。アドレスバーに次のようなメッセージが表示されます。

/MyController/id 

なぜですか?これをどうやって解決するのですか?ちょうどAction2にリダイレクトするだけですが、今回はクエリ文字列パラメータを追加します。私は何が欠けていますか?それを動作させるためには

あなたは(この場合は「 inputを」)のアクションで名前によってパラメータを指定する必要が
+0

「RedirectToAction( "Action2"、 "MyController"、new {id = 5}); – trashr0x

答えて

2

、以下を参照:

return redirectToAction(MVC.MyController.Action2().AddRouteValue("input", "5")); 

または代わり:

return RedirectToAction("Action2", "MyController", new { input = "myInput"}); 
0

私は次の方法で試してみて、それは私のために正常に動作します。

return RedirectToAction("Index", "CustomBuilder", new { usern = "admin" }); 
関連する問題