如果使用ActionName MVC属性进行装饰,请获取Action Method原始名称

时间:2016-09-12 04:53:15

标签: c# asp.net-mvc

我在我的MVC代码中使用了动作过滤器我附加了动作过滤器和下面提到的动作,但是这个动作是用MVC动作名称属性装饰的。

但是我想要动作方法原始名称(例如ChangeOrder),但是我将动作过滤器名称作为编辑。我不想删除ActionName属性。

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

我应该在不删除ActionName属性的情况下获取Actionmethod原始名称。 请提供我如何在mvc中获取原始名称未装饰的名称。

1 个答案:

答案 0 :(得分:2)

您可以通过将ActionName投射到过滤器中的ReflectedActionDescriptor来获取与filterContext.ActionDescriptor相对应的操作方法详细信息。此对象具有MethodInfo属性,该属性为您提供方法的所有详细信息。

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