1

次のようなアクションがあるとします。

public ActionResult Display(long Id){

  //Do something

return RedirectToAction(//To the Caller)

}

したがってDisplay、次のようないくつかのビューによって呼び出されるアクション:

インデックス ビュー:@Html.ActionLink("Show", "Display", new { Id=@Model.Id } )

だから私は必要ですDisplayreturn RedirectToAction("Index")

または

ビューの編集:@Html.ActionLink("Show", "Display", new { Id=@Model.Id } )

私は必要ですDisplayreturn RedirectToAction("Edit")

等々。

どのアクションが呼び出さDisplayれ、アクションの最後に呼び出し元のアクションに返されたかをどのように見つけることができますか? あなたの提案は何ですか?

4

3 に答える 3

2

ActionLink メソッドで id とともにもう 1 つのパラメーターを渡すのはどうですか?

@Html.ActionLink("Show", "Display", new { Id=@Model.Id ,from="Edit"} )

@Html.ActionLink("Show", "Display", new { Id=@Model.Id ,from="Index"} )

アクションメソッドでは、それも受け入れます

public ActionResult Display(long Id,string from)
{

  //Not 100 % sure what you want to do with the from variable value.
   return RedirectToAction(from);
}
于 2012-05-19T13:43:56.243 に答える
1

変数をリダイレクト アクション メソッドに渡したくない場合は、 をチェックしRequest.UrlReferrerて代わりに使用することもできます。

public ActionResult Display(long Id){

    var caller = Request.UrlReferrer != null 
        ? Request.UrlReferrer : "DefaultRedirect";

    // do something

    return Redirect(caller);
}
于 2012-05-19T22:45:39.653 に答える
1

returnUrl パラメータを使用できます。

呼び出し側:

@Html.ActionLink("Show", "Display", new { returnUrl = this.Url.PathAndQuery })

Display アクションは、returnUrl にリダイレクトするだけです。

this.Redirect(returnUrl);

これは、将来発生する可能性のある他のケースに対して十分に柔軟です。

于 2012-05-20T11:05:22.077 に答える