【问题标题】:Asp.net With the Routing in 3.5Asp.net 3.5 中的路由
【发布时间】:2011-08-20 02:00:58
【问题描述】:

嗨 我正在尝试在 Webforms 中使用 Asp.net Routing。 (请注意,我使用的是 .net 3.5)。我已经从几篇文章中找到了一种使用 Route 的方法。但是初始请求仍然转到 Default.aspx。但是我希望请求转到 Routehandler,而不是它我可以动态重定向到正确的页面

<httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>


    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"></modules>
    <modules>
        <remove name="ScriptModule"/>
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <remove name="ScriptHandlerFactory"/>
        <remove name="ScriptHandlerFactoryAppServices"/>
        <remove name="ScriptResource"/>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </handlers>
</system.webServer>

请查找配置部分以供参考

【问题讨论】:

  • 你的处理程序注册了吗?在我看来,好像不是?
  • @jonezy 我是否必须注册我为路由模块编写的 HTTP 处理程序.. 你能告诉我一个例子吗
  • 是的,你确定!我将在下面发布我如何注册我的
  • @jonezy 我在等你的回答...还有一件事我怎样才能避免进入 default.aspx...

标签: asp.net asp.net-mvc routing webforms


【解决方案1】:

听起来您还没有将处理程序添加到 web.config 的部分。

您能否发布一些代码或指向您从中获取代码的文章的链接?

我最近使用 Web 表单实现了路由,并且遇到了一些类似的问题(几乎都与配置相关)

【讨论】:

  • 我已经添加了配置部分
【解决方案2】:

最后我能弄明白。如果你想让路由进入正常参考,你应该把路由设置为 string.empty

 Route route=new Route(string.Empty,new RouteHandler());
        routeCollection.Add("default",route);

【讨论】:

    猜你喜欢
    • 2010-10-27
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2012-08-17
    • 2011-04-11
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多