如何使用MVC 6、ASP.NET 5注册全局过滤器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我试图在一个简单的mvc应用程序中注册一个过滤器。我甚至没有真正写过基本过滤器之外的任何东西来测试。我使用VS 2015 RC,并通过转到新项目 - > Asp.net Web Application - > Web API来创建初始应用程序。我遇到的问题是我找不到在全球范围内注册过滤器的方法。

从早期版本的MVC中我可以看到GlobalFilters.Filters,但是当我尝试在新框架中使用它时,它告诉我无法找到GlobalFilters。在以前的版本中,它存在于System.Web.MVC中,但我不再在我的引用中看到,并且我似乎无法在任何地方找到它。

这似乎应该是非常简单的,但到目前为止我还没有找到办法做到这一点。

这是我的project.json

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNet.Mvc": "6.0.0-beta4",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
  },

  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
      }
    },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ]
}
提问于
用户回答回答于

在mvc 6中如何做到这一点?

public void ConfigureServices(IServiceCollection services)
{
   services.AddMvc();
   services.ConfigureMvc(options =>
   {
      options.Filters.Add(new YouGlobalActionFilter());
   }
}
用户回答回答于

使用Beta 8,现在通过AddMvc完成如下工作:

services.AddMvc(options =>
{
    options.Filters.Add(new YouGlobalActionFilter());
});

扫码关注云+社区