如何使用mvc 6,asp.net 5注册全局过滤器

Zip*_*per 17 c# asp.net-mvc asp.net-core-mvc visual-studio-2015 asp.net-core

我正在尝试在简单的mvc应用程序中注册过滤器.我还没有在基本过滤器之外编写任何东西来测试.我正在使用VS 2015 RC,我通过转到新项目 - > Asp.net Web应用程序 - > 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"
  ]
}
Run Code Online (Sandbox Code Playgroud)

小智 33

使用Beta 8,现在通过AddMvc完成,如下所示:

services.AddMvc(options =>
{
    options.Filters.Add(new YouGlobalActionFilter());
});
Run Code Online (Sandbox Code Playgroud)


Kir*_*lla 10

如何在MVC 6中执行此操作的示例

public void ConfigureServices(IServiceCollection services)
{
   services.AddMvc();
   services.ConfigureMvc(options =>
   {
      options.Filters.Add(new YouGlobalActionFilter());
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 这个答案不再有效,请参阅Lee Jones的回答(http://stackoverflow.com/a/33768705/11220) (6认同)