3

请解释一下,这两种技术有何不同。我假设,根据我下面描述的经验和本文,在应用路由时,不会调用 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?

4

0 回答 0