请解释一下,这两种技术有何不同。我假设,根据我下面描述的经验和本文,在应用路由时,不会调用 PageHandlerFactory。
我有我自己的派生类PageHandlerFactory
,每当用户访问页面时都应该调用它。
当我不通过路由访问页面时,使用 web.config 中的这行代码一切都很好
<httpHandlers>
<add verb="*" path="*.aspx" type="MyProject.Web.DependencyInjectionPageHandlerFactory, MyProject.Web" />
</httpHandlers>
但是当我通过路由访问页面时,例如
RouteTable.Routes.MapPageRoute("Login", "login", "~/Pages/Login.aspx");
处理程序未应用。我什至通过在我的处理程序的构造函数中放置一个断点来测试它,当我通过路由访问页面时它没有被调用。由于我在我的项目中使用 IoC/DI,即使我使用路由,我也想继续使用它将 DI 注入我的 aspx 页面。
我将如何在 web.config 中管理它?或者至少在代码中。
编辑:我发现每次加载页面时都会引发事件,无论如何。在 Global.asax 中是
Application_PostRequestHandlerExecute
现在,我可以很容易地知道,它是如何通过解析 URL 来调用的。有没有办法,如何在某些页面上应用我的 PageHandlerFactory?