【发布时间】:2015-09-09 06:01:53
【问题描述】:
我在我的 MVC 项目中实现了一个动作过滤器。现在我想全局添加它,这样我就不需要在操作方法上方编写过滤器属性。我正在使用 BundleMinifyInlineJsCss nuget 包。
我已尝试在 Global.asax.cs 文件中使用以下代码:
GlobalFilters.Filters.Add(new ReplaceTagsAttribute());
这是我的过滤代码:
public class ReplaceTagsAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Response.Filter = new BundleAndMinifyResponseFilter(filterContext.HttpContext.Response.Filter);
}
}
我收到一个错误:不允许过滤。如何在全球范围内声明它?
谢谢。
【问题讨论】:
-
您将此属性应用于 Controller 或 Action 方法?
-
对于动作方法。如果我手动将属性写入 Action 方法,我可以成功添加它。但我想将此添加到所有操作方法中。
-
试试
GlobalConfiguration.Configuration.Filters.Add(..)。 -
@AmitKumarGhosh:在 Global.asax.cs 文件中。对吗?
-
@AmitKumarGhosh:它给了我一个错误:Nop.Web.Customization.ActionFilter.ReplaceTagsAttribute' is a 'type' but is used like a 'variable'
标签: c# asp.net-mvc actionfilterattribute