如何从dotnetnuke获取完整的URL

时间:2013-11-20 08:27:30

标签: c# asp.net dotnetnuke

如果我使用它:

Request.Url.AbsoluteUri

我得到完整的网址:

http://localhost/mysite/Default.aspx?TabID=269&OTHER-parameters

但我不想用TabID这个东西我需要友好的网址,所以如果我使用:

DotNetNuke.Entities.Tabs.TabController.CurrentPage.FullUrl;

我得到了

http://localhost/mysite/something/en-us/generatethings.aspx

但有了这个,我没有得到参数:(
如何使用所有参数从dnn获取完整友好的完整URL?

3 个答案:

答案 0 :(得分:6)

不幸的是,没有一种简单的方法可以在DNN中获取当前URL,因为URL在到达模块之前会被重写。

我们通常使用Globals.NavigateURL重新生成网址。您可以使用DotNetNuke.Common.Utilities.UrlUtils.GetQSParamsForNavigateURL从当前URL获取所有查询字符串参数。

所以,你最终会得到这样的东西:

var currentUrl = Globals.NavigateURL(
    this.TabId, 
    this.Request.QueryString["ctl"], 
    UrlUtils.GetQSParamsForNavigateURL());

答案 1 :(得分:4)

我认为这会让你得到你想要的东西

string url = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl;

答案 2 :(得分:1)

`string url = TabController.CurrentPage.FullUrl;`

这应该为您提供用户友好的网址