、私はこのコードを使用しています:RedirectToActionメソッドでクエリ文字列値を追加する方法は? asp.netのMVCでは
RedirectToAction("myActionName");
私は、クエリ文字列を経由していくつかの値を渡したい、私はそれをどのように行うのですか?
ルートの一部ではない渡される任意の値をクエリ文字列パラメータとして使用されます、私はこのコードを使用しています:RedirectToActionメソッドでクエリ文字列値を追加する方法は? asp.netのMVCでは
RedirectToAction("myActionName");
私は、クエリ文字列を経由していくつかの値を渡したい、私はそれをどのように行うのですか?
ルートの一部ではない渡される任意の値をクエリ文字列パラメータとして使用されます:
return this.RedirectToAction
("myActionName", new { value1 = "queryStringValue1" });
を返します:
/controller/myActionName?value1=queryStringValue1
「VALUE1」という名前のルートのパラメータはありませんと仮定すると、 。
拡張メソッドAddRouteValue()
とAddRouteValues()
(here参照)を持つT4MVCを使用することも検討してください。
私が作ったのと同じ間違いをしないでください。私は404エラーを処理していたので、のようにクエリ文字列に404=filename
とリダイレクトしたいと思っていました。
クエリーストリングキーは数字で始めることはできません。 404
からFileNotFound
に変更されました。問題はmysite.com?FileNotFound=nonExistentFile.txt
です。
これは[一般的には]当てはまりません(https://stackoverflow.com/a/12465767/264628)。特に.NET MVC(少なくともv5の場合)ではそうではありません。数字だけで構成されていても、キーは文字列であることを覚えておいてください。次のように数値キーにアクセスします: 'HttpContext.Request.QueryString [" 404 "]'。 – BrianS
賛成ですが、名前が「値1」のアクションパラメータが存在する可能性があります。何故なの? –
答えは "value1 'という名前のルートパラメータがないと仮定していると思います。それ以外の場合、値は生成されたURLのルートパラメータの場所に入ります。 {controller}/{action}/{value1}は、/ controller/myActionName?value1 = queryStringValue1ではなく、/ controller/myActionName/queryStringValue1になります。 – Levi
リーバイスが正しいです。私は何を意味するのかを明確にするために答えを修正しました。 – Talljoe