【问题标题】:ASP.NET WebForms Domain RoutingASP.NET WebForms 域路由
【发布时间】:2011-08-08 14:26:05
【问题描述】:

我看到了一个很酷的 ASP.NET MVC 域路由实现。
来源:http://blog.maartenballiauw.be/post/2009/05/20/ASPNET-MVC-Domain-Routing.aspx

这可以在 ASP.NET WebForms 4.0 上完成吗?

【问题讨论】:

  • -1 是为了什么?否决的选民愿意详细说明吗?我猜不是:)
  • 很抱歉跑题了,但除了这是一个很酷的域路由技巧之外,它有什么用?我的意思是拥有 www.website.com/en 或 www.en.website.com 有什么不同。我认为对于最终用户来说,拥有默认 ROUTES aka domain name 会更加清楚。域名类型/控制器...
  • @eugeneK:与多租户多语言网站合作,您就会知道。很抱歉你没有:)
  • 我做过,实际上我目前的项目是。我仍然认为使用 www.en.website.com 而不是 www.website.com/en 没有任何意义,后者更具可读性并且不需要欺骗路由机制(这可能会导致更多的 CPU/内存使用)...

标签: c# asp.net routing webforms


【解决方案1】:

考虑到 Route 类并非特定于 MVC 应用程序并且可以在普通 ASP .NET WebForms 项目的上下文中轻松使用这一事实,您链接到的 DomainRoute 类在该上下文中也应该可以正常工作。

应该是一个足够容易证明的冒险。

【讨论】:

    【解决方案2】:

    您的问题的答案是肯定的。其实很简单。您可以尝试使用 DomainRoute 类或编写自己的 url 重写模块,然后一切顺利。但基本上你会使用这样的东西:

    http://www.gutgames.com/post/Url-Rewriting-in-ASPNet.aspx

    您可以使用 Url 属性并根据需要对其进行解析,而不是使用 Path。或者你可以像这样使用一个开源项目:

    http://sharedhostingsplittr.codeplex.com/

    如果需要,可以稍微修改一下。

    【讨论】:

    • 谢谢,但我不想重写 url,我想扩展 url 路由本身
    【解决方案3】:

    简短的回答是,是的,您可以在 WebForms 中使用路由。查看System.Web.Routing 命名空间。

    在 Global.asax 中的 Application_Start 中,您可以根据文本或正则表达式设置路由。

    【讨论】:

    • @skaz:请给我一个理由,说明为什么我不应该投反对票!
    • @yetanothercoder - 不确定你想要什么。你问“这可以做到吗”。是的,这是可以做到的。我给了你功课让你研究。我不知道你想要什么回应......
    • @skaz:我们在这里讨论的是域路由。我确实知道 System.Web.Routing。你读过这篇博文吗?
    • 我认为否决票会有点苛刻。您的原始帖子没有提到您对路由一无所知。 @skaz 回答了您的问题,尽管更多细节可以避免这些 cmets。
    • @Simon Halsey:如果您已经阅读了这个问题并浏览了博文,您就会明白。再加上我没有对 skaz 投反对票。
    【解决方案4】:

    是的,在你的项目中添加 Global.ascx 文件,并在其中添加我编写的函数

       public static void UrlRouting(RouteCollection RC, string RoutName, string routeUrl, string Page)
        {
            RC.MapPageRoute(RoutName, routeUrl, Page);
        }
    after this inside Application_Start event on global.ascx file 
    call that function like 
    UrlRouting(RouteTable.Routes, "index", "Home", "~/index.aspx");
    

    然后使用路由 URL 调用它 ~/Home '>首页 注意:不要忘记使用您的 URL 调用 ResolveUrl 否则无法调用 你的图片和 jquery,js 路径也应该有 ResolveUrl 喜欢 '/> 否则这个 jquery 将无法工作并且图像将不会显示 希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      相关资源
      最近更新 更多