MVC3推奨コントローラー、アクション照会の再利用

In an MVC3 app what is the recommended method to store the Controller, Action & query details of a page and then re-use them in an actionlink on a subsequent page?

e.g. from page ~/Home/BlogsByTag?tag=Cloud%20Services listing a series of blogs, what is the 'best' way to capture the Controller, Action & query and then how can these then be applied to a 'Back to List' actionlink in a subsequent edit page (~/Admin/Edit/?Blog=1234)?

0

2 答え

あなたが使用することができます:

Url.RouteCollection["controller"]
Url.RouteCollection["action"]
...

For the variables you need. For the querystring あなたが使用することができます:

Request.QueryString ["variable1"]

あるいはコントローラを宣言することもできます:

public ActionResult MyController(string controller, string action, string variable...)

変数は自動的に入力されます。

次に、この情報(または完全なURL)を Session ["refurl"] に保存することができます。これは残りのユーザーのセッションに有効です

0
追加された
セッション変数に値を格納すると、アクションリンクの構築はどのようになりますか?
追加された 著者 user1065447,

私があなたを正しく理解している場合、参照ページからurlを使ってActionLinkを生成したいのですか?

あなたは完全なURLの観点からリクエストからリファラーを読むことができます:

Request.UrlReferrer

アクション、コントローラー、およびクエリーパーツにアクセスするには、それらのパラメーターをパラメーターとして渡す必要があります。例えば:

Html.ActionLink("Linktext", "Edit", "Admin", null, 
                               new {
                                  Blog = 1234, 
                                  ReferringController = "Home",
                                  ReferringAction = "BlogsByTag",
                                  ReferringQueryParams = ...
                               });

次に、編集アクションでその値を読み取り、それをビューに渡してバックリンクを生成することができます。

しかし、 history.back()を使用する方が簡単な方法です。

0
追加された
さて、問題は、その値をどこでコーディングしたいのですか?私の2番目のアプローチは、後続ページのアクションリンクに再利用すると書いたので、参照ページの値をURLパラメータ経由で送信します。
追加された 著者 Jan,
私はactionlinkが〜/ Home/BlogsByTag?tag = Cloud%20Servicesにリファーラーとしてこのページを持っていない可能性のある後続のページから戻るようにします。
追加された 著者 user1065447,
ブログのリストを含む元のページ(〜/ Home/BlogsByTag?タグ= Cloud%20Services)から、選択したブログの詳細ページに進み、その後、さらにページに進みます。編集、削除することができます。これらのページには、アクションリンクを元のページにリンクさせたいと思っています。
追加された 著者 user1065447,