我已经阅读了类似的问题RegisterGlobalFilter的目的是什么
但是无法得到答案,这个问题在某种程度上也围绕着其他一些东西,并且anwser似乎并没有让我满满的.
我的问题是: - MVC 5中global.asax中这一行的目的是什么 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
Pat*_*ick 49
这FilterConfig是代码中的自定义类,通常在App_Start文件夹下,通常看起来像这样:
public class FilterConfig {
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new HandleErrorAttribute());
}
}
Run Code Online (Sandbox Code Playgroud)
您可以向此列表添加应在每个请求上执行的自定义过滤器.如果从FilterAttribute类或其继承者继承,则可以创建自己的过滤器,例如日志过滤器.
您还可以将这些过滤器应用于需要某些约束的控制器.例如,如果将[RequireHttps]过滤器属性(下面的示例)添加到控制器或控制器中的方法,则用户必须使用https请求才能执行方法中的代码.因此,过滤器不是在每种方法中处理它,而是处理它.
[RequireHttps]
public class MyController : ApiController {
// only https requests will get through to this method.
[HttpGet]
public IHttpActionResult Get() {
return Ok();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其视为位于用户浏览器和控制器之间的小盒子,并过滤掉任何无效请求,或者在控制器完成后执行并且需要将结果后处理给用户.
如果您想阅读更多内容,msdn会在ASP.NET MVC中的Filtering中提供有关过滤器的更多详细信息.