【问题标题】:Using Routing in Asp.Net Webform Application在 Asp.Net Webform 应用程序中使用路由
【发布时间】:2009-08-20 10:42:24
【问题描述】:

我在 Asp.Net Webform 应用程序中使用System.Web.Routing。我在global.asax写了如下路线

routes.RouteExistingFiles = true; // I made true/false both, but none works

routes.Add("competition", new Route
            (
               "Test",
               new CustomRouteHandler("~/Test/WebForm1.aspx")
            ));

目录结构如下:-

应用

|

|--- 测试(文件夹)

   |--- Webform1.aspx

当我在浏览器http://localhost:xxxx/Test/(使用Casini)中编写时,请求以传统方式处理,而不是通过路由,它给了我“目录列表-/test/”页面。

你能帮帮我吗?

【问题讨论】:

    标签: asp.net webforms system.web.routing


    【解决方案1】:

    我遇到了同样的问题,我选择了实用的解决方案,应该处理默认路径的文件称为 Default.aspx

    routes.Add("competition", new Route ( "Test", new CustomRouteHandler("~/Test/Default.aspx") ));
    

    【讨论】:

    • 确实,或者按照建议使用 Default.aspx,因为它可能已经在默认文档列表中
    • @Pete :您提供的建议也适用于我。但是,现在的问题是哪个 http 模块正在执行这个请求,是传统的 http 模块(asp.net one)还是路由 http 模块(asp.net mvc)?因为,a/c to rememdy,我认为它使用传统的 http 模块(asp.net 之一)。
    【解决方案2】:

    您是否直接为 WebForms 使用 Routing,我刚刚专门为“WebForms”实现了此功能,因为有一些事情需要注意:

    http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx

    HTH

    更新:

    使用链接中的实现仍然会产生相同的错误,因为实际文件夹存在。

    我认为既然文件夹存在,它就会被提供(在某些情况下可能需要列出文件夹内容)

    也许采取不同的方法会更好,例如,如果页面都指向特定的外联网登录页面,那么额外的描述性文件夹可能会起作用,例如:/Extranets/Test/?

    【讨论】:

    • 是的,我直接使用。所有其他路线都工作正常,例如 routes.Add("competitionNew", new Route ( "NewTest", new CustomRouteHandler("~/Test/WebForm1.aspx") ));但是,我真正担心的是,如果请求是 localhost:xxx/Test,其中 Test 也是应用程序中的文件夹,那么它会显示“目录列表 -- /test/”页面,而不是呈现 webform1 页面。
    • 好的,在我的应用程序上进行了测试(根据链接实现了 WebForm 路由)并且似乎做同样的事情,我已经更新了我的答案......
    • ...如果您将 iis 中的默认文档设置为 WebForm1.aspx,它将为该页面提供服务,但在您的应用中可能不需要?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2018-05-16
    相关资源
    最近更新 更多