rob*_*ert 2 .net c# asp.net url-rewriting c#-4.0
我们正在为我们的一些 url 使用 IIS 7“URL 重写”功能
例如,重写的规则
/viewSompage.aspx?id=123&title=some-title 
改写为
/View/SomePage/some-title/123/
出于多种目的(其中之一能够在电子邮件模板中设置重写的 url 等),我们需要在给定字符串的情况下在代码隐藏中获取重写的 url。
我知道重写器会使用出站规则自动应用页面中的那些,但我仍然需要获取重写的 url 以用于其他目的。
我希望能够传递一个 url 字符串,并使 urlrewiter 将任何适用的规则应用于给定的 url 示例
String rewrittenURL = ApplyRewritingRules("/viewSompage.aspx?id=123&title=some-title");
提前致谢
好的,我找到了一个不错的解决方案,不需要我做多余的事情。
Page.ResolveUrl(Request.RawUrl)
其中 Page 是 System.Web.UI.Page 的一个实例……那是你的标准 aspx 页面
请求 ... 如果您尝试访问请求,请使用 HttpContect.Current.Request ...
RawUrl = /viewSompage.aspx?id=123&title=some-title 
重写为(根据我在 web.config 中指定的规则)
/View/SomePage/some-title/123/
从那里我可以只用一行代码构建整个链接:
String url = String.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host, Page.ResolveUrl(request.RawUrl));
| 归档时间: | 
 | 
| 查看次数: | 8760 次 | 
| 最近记录: |