c# – MVC动作过滤器使用参数传递给ActionResult?

前端之家收集整理的这篇文章主要介绍了c# – MVC动作过滤器使用参数传递给ActionResult?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个自定义Action Filter没有问题.

但是我想修改Action Filter来使用实际传递给我的方法的一些参数.

所以如果我有以下方法

[HttpPost]
[MyAttribute]
public ActionResult ViewUserDetails(Guid userId)
{
     // Do something
}

如何从MyAttribute中访问userId?有办法可以直接通过吗?

解决方法

您可以尝试使用OnActionExecuting覆盖,您可以在其中进行操作参数的访问.
public class MyAttribute: ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {    
        if (filterContext.ActionParameters.ContainsKey("userId"))
        {
            var userId = filterContext.ActionParameters["userId"] as Guid;
            if (userId != null)
            {
                // Really?! Great!            
            }
        }
    }
}

猜你在找的C#相关文章