ASP.NET UrlRewriting和构造页面链接

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (37)

这篇文章讨论了如何在ASP.NET应用程序中实际实现url重写以获得“友好的URL”。这非常有用,非常适合将用户发送到特定页面,但有人知道在使用其中一个引用的工具时,在代码中创建“友好”URL的好方法吗?

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

我熟悉使用DotNetNuke和FriendlyUrl,其中有一个“NavigateUrl”方法,可以从重写器中获取友好的Url代码,但我没有找到如何使用UrlRewriting.net或其他解决方案执行此操作的示例那里。

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

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

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

提问于
用户回答回答于

参见System.Web.Routing

路由与重写不同。实现此技术确实需要对页面进行微小更改(即,任何访问查询字符串参数的代码都需要修改),但它允许您根据定义的路由生成链接。它由ASP.NET MVC使用,但可以在任何ASP.NET应用程序中使用。

路由是.Net 3.5 SP1的一部分

用户回答回答于

给每个页面创建一个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);
        }
    }
}

扫码关注云+社区

领取腾讯云代金券