2009-04-09 8 views
0

私が望むのは、すべてのURLに対して、特定のパラメータをビューに渡さずに、それをroutevaluesパラメータを使用してActionLinkに追加する必要がないことです。私は自分のサイトに、すべてのリンクの "return param"を追跡したいセクションがあります。 Html.BeginFormはアクションを正確な現在のURLに設定しているので、フォームにはうまく機能します。私がでてるページがHtml.ActionLinkにURLパラメータを自動的に追加させることはできますか?

/MyController/MyAction/300?ReturnTo=100 

とI出力であれば

ので、

Html.ActionLink("Next Screen", "MyOtherAction") 

私は

を行うことなく、

<a href="/MyController/MyOtherAction/300?ReturnTo=100">Next Screen</a> 

を見てみたいと思います

Html.ActionLink("Next Screen", "MyOtherAction", new {ReturnTo = Model.ReturnTo}) 

答えて

2

これを行う独自のHtmlHelper拡張をHtml.ActionLinkを呼び出して作成し、クエリ文字列を組み合わせることができます。現在のクエリ文字列を取得するには、ViewContextを使用します。

+0

これはかなり良いですね。ビューヘルパーでHttpContext.Current.Requestにアクセスするには、mvc規約を壊してしまいますか? – JeremyWeir

+0

正確にする必要はありません。これはヘルパー引数を介して利用できます。 –

1

これを試してみてください:

Html.ActionLink("Next Screen", "MyOtherAction", new {Model.ReturnTo}) 

リンクは、今あなたがそれを可能にする方法が表示されます。

+1

答える前に全文を読まなければなりません、あなたが書いた行は、私が書くことがいかにすべきか疑問に思っていた正確な行です。 – JeremyWeir

関連する問題