1

考虑以下情况。在我的控制器中,我有:

public ActionResult Edit(int id)
{
  ...
}

[HttpPost]
public ActionResult Edit(Model model)
{
  ...
}

我还有一个ActionFilterAttribute,它适用于同一控制器的其他一些操作。在OnActionExecuting我需要获取操作的方法ActionDescriptorHttpGet Edit

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    // as this is called from the same controller, I use
    ActionDescriptor action = filterContext.ActionDescriptor.ControllerDescriptor
             .FindAction(filterContext.Controller.ControllerContext, "Edit");
    ...
}

问题是,该方法在请求的情况下FindAction返回对操作的“引用” 。我如何让它只寻找动作?HttpPost EditPOSTHttpGet

4

1 回答 1

1

你可以使用也许属性?

public class FooAttribute
    {


    }

[FooAttribute]
public ActionResult Edit(int id)
{
  ...
}

您可以检查 OnActionExecution;例子;

var isHasAttribute= filterContext.ActionDescriptor.IsDefined(typeof(FooAttribute), true);
于 2013-05-13T14:45:05.290 回答