ASP中如何将动态变量传递给动作过滤器.净MVC



我想使用一个变量来传递一个动态值给我的动作过滤器。我想应该是这样的:

[MessageActionFilter(message = "User is updating item: " & id)]
public ActionResult doSomething(int id)
{
    // do something
}

然而,参数似乎必须是一个常数值。因此,我的问题是如何将变量获取到我的动作过滤器?

您可以使用ActionExecutingContext获取onactionexecution中的参数值。ActionParameters财产。

这只是一个伪代码,但例如您可以检索名为id的参数

public class MessageActionFilter: ActionFilterAttribute 
{     
    public override void OnActionExecuting(ActionExecutingContext filterContext)     
    {         
        var response = filterContext.HttpContext.Response;                   
        var parameterValue = filterContext.ActionParameters.SingleOrDefault(p => p.Key == "id");
        // check if not null before writing a message
        response.Write(this.Message + parameterValue); // prints "User is updating item: <idvalue>"
    }
    public string Message {get; set;}
} 

告诉我是否有帮助

相关内容

  • 没有找到相关文章

最新更新