如何将过滤器应用于控制器?使用DI

时间:2016-10-21 13:08:12

标签: c# asp.net-mvc asp.net-mvc-4 dependency-injection autofac

我正在使用Autofac

我有一个webapi控制器 MyWebApiController ,我需要应用过滤器 MyNewActionFilter 。在Autofac中,我可以简单地执行以下操作:

builder.RegisterType<MyNewActionFilter>()
                .AsWebApiExceptionFilterFor<MyWebApiController>()
                .InstancePerApiControllerType(typeof(MyWebApiController));

这类似于以下内容:

[MyNewActionFilter]
public class MyWebApiController : ApiController

如何为MVC控制器做同样的事情?

我的MVC控制器: HomeController ,我的MVC过滤器 TrackPackageFilter

我试过了,

builder.RegisterType<HomeController>()
            .AsActionFilterFor<TrackPackageFilter>
            .InstancePerHttpRequest();

但这种格式不正确,意思是there was no extension method or method called AsActionFilterFor

有人可以提供一些见解吗?

1 个答案:

答案 0 :(得分:0)

这是由于一个被忽视的错误。

未包含using指令:使用Autofac.Integration.Mvc;

我的Resharper / VS没有自动找到它:(

无论如何,现在解决了:)