Ank*_*ita 5 c# asp.net-mvc actionfilterattribute
我在我的 MVC 项目中实现了一个动作过滤器。现在我想全局添加它,这样我就不需要在操作方法上方编写过滤器属性。我正在使用 BundleMinifyInlineJsCss nuget 包。
我在 Global.asax.cs 文件中尝试了以下代码:
GlobalFilters.Filters.Add(new ReplaceTagsAttribute());
Run Code Online (Sandbox Code Playgroud)
这是我的过滤器代码:
public class ReplaceTagsAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Response.Filter = new BundleAndMinifyResponseFilter(filterContext.HttpContext.Response.Filter);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:不允许过滤。我如何在全球范围内声明它?
谢谢。
我认为添加一个空检查对你有用。
public class ReplaceTagsAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var response = filterContext.HttpContext.Response;
if (response.Filter == null) return; // <-----
response.Filter = new BundleAndMinifyResponseFilter(response.Filter);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5470 次 |
| 最近记录: |