在自定义过滤器属性中更改ActionExecutingContext值

时间:2010-01-06 02:10:15

标签: asp.net-mvc action-filter

我有一个自定义过滤器属性,我想在某些ActionResults上使用它来查看正在尝试的数据,并设置违反某些规则的值。

因此;

public class SpecialActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        foreach (string value in filterContext.Controller.ValueProvider.Keys)
        {
            string h = filterContext.Controller.ValueProvider[value].AttemptedValue;

            if (h == "1")
            {
                //set the value of the key to be say "one".    
            }
        }

        base.OnActionExecuting(filterContext);
    }

}

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以检查或修改将传递给操作的参数 - 请参阅 ActionExecutingContext.ActionParameters 属性。不过,这是一个非常通用的解决方案。如果您可以提供更多关于您正在尝试做什么的背景信息,我们可能会提供更多相关建议。