0

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

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

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

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

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

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

4

2 回答 2

3

请参阅System.Web.Routing

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

路由是 .Net 3.5 SP1 的一部分

于 2008-09-17T20:28:03.337 回答
0

为每个页面创建一个带有方法的 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);
        }
    }
}
于 2008-09-17T20:27:32.277 回答