ASP.NET Url重写和构建页面链接
-
01-07-2019 - |
题
所以这个帖子 讨论了如何在 ASP.NET 应用程序中实际实现 url 重写以获得“友好的 url”。这非常有效,并且非常适合将用户发送到特定页面,但是有人知道在使用引用的工具之一时在代码中创建“友好”URL 的好解决方案吗?
例如,当存在重写规则时,将 asp.net 控件内部的链接列为 ~/mypage.aspx?product=12 将是一个问题,因为此时您会以两种不同的方式链接到内容。
我熟悉使用DotNetNuke和FriendlyUrl,其中有一个“NavigateUrl”方法可以从重写器中获取友好的Url代码,但我没有找到如何使用UrlRewriting.net或其他解决方案执行此操作的示例那里。
理想情况下,我希望能够得到这样的东西。
string friendlyUrl = GetFriendlyUrl("~/MyUnfriendlyPage.aspx?myid=13");
编辑: 我正在寻找一种通用的解决方案,不是我必须为网站中的每个页面实现的解决方案,而是可能可以与相反方向的规则匹配的解决方案。
解决方案
路由与重写不同。实现此技术确实需要对页面进行少量更改(即,需要修改任何访问查询字符串参数的代码),但它允许您根据定义的路由生成链接。它由 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);
}
}
}
不隶属于 StackOverflow