2016-09-12 1 views
2

MVCコードでアクションフィルタを使用しています。以下のアクションでアクションフィルタをアタッチしましたが、このアクションはMVCアクション名属性でデコレートします。アクションメソッドを取得するActionNameを使用してデコレートする場合の元の名前MVCアトリビュート

しかし、アクションメソッドの元の名前(例:ChangeOrder)が必要ですが、私はアクションフィルタ名を編集として取得しました。私はActionName属性を削除したくありません。

[HttpPost, ActionName("Edit")] 
[FormValueRequired("btnSaveOrderStatus")] 
public ActionResult ChangeOrder(int id) 
{ 
    return View(); 
} 

ActionName属性を削除せずにActionmethodの元の名前を取得する必要があります。 mvcに装飾されていないオリジナルの名前を取得する方法を教えてください。

+0

いつでも編集(または変更オーダー)を使用しないでください。 – Maxim

+0

@Div編集ページからフォームコレクションを取得しています。もう一度質問してください。私はそれを更新しました。 – vatsal

+0

@vatsalなので、 'filterContext.ActionDescriptor.ActionName'に' Edit'がありますか? –

答えて

2

ActionNameに対応するアクション方法の詳細は、filterContext.ActionDescriptorをフィルタのReflectedActionDescriptorにキャストして取得できます。このオブジェクトはメソッドのすべての詳細を与えるMethodInfoプロパティを持っています。

string actionMethodName = (filterContext.ActionDescriptor as ReflectedActionDescriptor) 
      .MethodInfo 
      .Name; 
+0

多くの時間を節約してくれてありがとう。 – vatsal

+0

@vatsal喜んで助けてください。 –

関連する問題