0

次の簡略化された ASP.NET MVC シナリオを考えてみます。

  1. ユーザーがページhttp://www.mysite.com/Home/Index (明確にするために明示的に「インデックス」が含まれています) に移動します。
  2. そのページには$.ajax({..}) Home コントローラー内のメソッドを呼び出す jQuery の投稿があります。/Home/GetProducts
  3. このメソッドでは、Index アクション名を取得する必要があります。実行時には、どこからでも呼び出される可能性があるため、ユーザーが、、などをGetProducts()ブラウズしているかどうかがわからないことに注意してください。Home/IndexHome/AboutHome/ContactGetProducts

私は一生、GetProducts()メソッドのスコープでページ アクション (インデックス、概要、連絡先など) を取得することはできません。

私は次のことを試しました:

// returns "GetProducts"
string actionName1 = RouteData.GetRequiredString("action");
// returns "GetProducts"
string actionName2 = ControllerContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
// ParentActionViewContext == null
string actionName3 = ControllerContext.ParentActionViewContext.RouteData.Values["action"].ToString();
4

1 に答える 1