asp.net 4.0中的页面路由(无扩展URL)与PageHandlerFactory(* .aspx)的页面路由

时间:2013-03-28 21:27:12

标签: c# asp.net routing webforms httphandlerfactory

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

0 个答案:

没有答案