假设我有一个名为“HomeController”的控制器,它继承自Mvc.Controller。另外说我已经编写了控制器的构造函数和一些用于某些操作的过滤器。
Public Class ClientController
Inherits System.Web.Mvc.Controller
Public Sub New()
''Some code
End Sub
<SomeActionFilter()> _
Function Index() As ActionResult
Return View()
End Function
End Class
我的问题是:
答案 0 :(得分:2)
构造函数将首先出现。取决于过滤器或操作方法将执行的过滤器类型。请参阅此处查看filter types。
过滤器不拦截构造函数。如果要控制Controller的构造函数调用,则需要通过实现IControllerFactory
(或DefaultControllerFactory
)来构建自定义控制器工厂,并将其注册到ControllerBuidler
,例如:
申请开始时ControllerBuilder.Current.SetControllerFactory(typeof(MyControllerFactory))
。
如果我不想在其中运行代码 通过检查一些条件?
你不能直接在构造函数中编写该代码(例如,基本控制器中的检查条件可以重用)?在这种情况下,为什么需要过滤器?