代码之家  ›  专栏  ›  技术社区  ›  Mitchel Sellers

ASP.NET URLRewriting和构造页面链接

  •  0
  • Mitchel Sellers  · 技术社区  · 16 年前

    So this post 讨论了如何在ASP.NET应用程序中实际实现URL重写以获得“友好的URL”。这是完美的,对于将用户发送到一个特定的页面是很好的,但是有人知道当使用一个引用的工具时,在代码中创建“友好”URL的一个好的解决方案吗?

    例如,将ASP.NET控件内部的链接作为~/mypage.aspx列出?当存在重写规则时,product=12将是一个问题,因为您将以两种不同的方式链接到内容。

    我熟悉使用dotnetnuke和friendly url,其中有一个“navigateurl”方法可以从re-writer获得友好的url代码,但我没有找到如何使用urlrewriting.net或其他解决方案实现这一点的示例。

    理想情况下,我希望能够得到这样的东西。

    string friendlyUrl = GetFriendlyUrl("~/MyUnfriendlyPage.aspx?myid=13");
    

    编辑: 我正在寻找一个通用的解决方案,不是我必须为我的站点中的每一个页面实现的解决方案,而是可能在相反的方向上与规则相匹配的解决方案。

    2 回复  |  直到 16 年前
        1
  •  3
  •   David Thibault    16 年前

    System.Web.Routing

    路由不同于重写。实现这种技术确实需要对页面进行细微的更改(即,需要修改任何访问querystring参数的代码),但它允许您根据定义的路由生成链接。它由ASP.NET MVC使用,但可用于任何ASP.NET应用程序。

    路由是.NET 3.5 SP1的一部分

        2
  •  0
  •   John Sheehan    16 年前

    为每个页面创建一个urlbuilder类,方法如下:

    public class UrlBuilder
    {
        public static string BuildProductUrl(int id)
        {
            if (true) // replace with logic to determine if URL rewriting is enabled
            {
                return string.Format("~/Product/{0}", id);
            }
            else
            {
                return string.Format("~/product.aspx?id={0}", id);
            }
        }
    }