c# - 使用传递给 ActionResult 的参数的 MVC Action 过滤器?

标签 c# asp.net-mvc action-filter actionfilterattribute

我创建了一个自定义 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# - 使用传递给 ActionResult 的参数的 MVC Action 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203329/

相关文章:

asp.net-mvc - 如何从 ActionFilter 访问 ModelState?

c# - Web API Action Filter 修改返回值

c# - 尝试输出 unicode 拉丁十字字符(十六进制 : 271D) in C#

按字符串中的名称访问属性的 C# 语法

c# - 使用Razor MVC + Mysql进行用户身份验证

c# - Entity Framework FK 错误

c# - MVC 4 Entity Framework 模型为空

asp.net-mvc-3 - HttpContext.Current 与 ActionExecutingContext

c# - 从 IRedisClient 获取缓存仅缓存命中的键/值映射

c# - 包含的亚音速查询构造(Guid)