次の簡略化された ASP.NET MVC シナリオを考えてみます。
- ユーザーがページhttp://www.mysite.com/Home/Index (明確にするために明示的に「インデックス」が含まれています) に移動します。
- そのページには
$.ajax({..}
) Home コントローラー内のメソッドを呼び出す jQuery の投稿があります。/Home/GetProducts
- このメソッドでは、Index アクション名を取得する必要があります。実行時には、どこからでも呼び出される可能性があるため、ユーザーが、、などを
GetProducts()
ブラウズしているかどうかがわからないことに注意してください。Home/Index
Home/About
Home/Contact
GetProducts
私は一生、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();