2009-07-01 46 views

答えて

117

return this.RedirectToAction 
    ("myActionName", new { value1 = "queryStringValue1" }); 

を返します:

/controller/myActionName?value1=queryStringValue1 

「VALUE1」という名前のルートのパラメータはありませんと仮定すると、 。

+0

賛成ですが、名前が「値1」のアクションパラメータが存在する可能性があります。何故なの? –

+2

答えは "value1 'という名前のルートパラメータがないと仮定していると思います。それ以外の場合、値は生成されたURLのルートパラメータの場所に入ります。 {controller}/{action}/{value1}は、/ controller/myActionName?value1 = queryStringValue1ではなく、/ controller/myActionName/queryStringValue1になります。 – Levi

+0

リーバイスが正しいです。私は何を意味するのかを明確にするために答えを修正しました。 – Talljoe

3

拡張メソッドAddRouteValue()AddRouteValues()here参照)を持つT4MVCを使用することも検討してください。

1

私が作ったのと同じ間違いをしないでください。私は404エラーを処理していたので、のようにクエリ文字列に404=filenameとリダイレクトしたいと思っていました。

クエリーストリングキーは数字で始めることはできません。 404からFileNotFoundに変更されました。問題はmysite.com?FileNotFound=nonExistentFile.txtです。

+0

これは[一般的には]当てはまりません(https://stackoverflow.com/a/12465767/264628)。特に.NET MVC(少なくともv5の場合)ではそうではありません。数字だけで構成されていても、キーは文字列であることを覚えておいてください。次のように数値キーにアクセスします: 'HttpContext.Request.QueryString [" 404 "]'。 – BrianS

関連する問題