C# 如何从dotnetnuke获取完整url
如果我使用这个:C# 如何从dotnetnuke获取完整url,c#,asp.net,dotnetnuke,C#,Asp.net,Dotnetnuke,如果我使用这个: Request.Url.AbsoluteUri 我得到完整的url,如: http://localhost/mysite/Default.aspx?TabID=269&OTHER-parameters 但我不想使用TabID,我需要友好的url,所以如果我使用: DotNetNuke.Entities.Tabs.TabController.CurrentPage.FullUrl; 我明白了 但这样我就不会得到参数:( 如何使用所有参数从dnn获取完全友好的完整ur
Request.Url.AbsoluteUri
我得到完整的url,如:
http://localhost/mysite/Default.aspx?TabID=269&OTHER-parameters
但我不想使用TabID,我需要友好的url,所以如果我使用:
DotNetNuke.Entities.Tabs.TabController.CurrentPage.FullUrl;
我明白了
但这样我就不会得到参数:(如何使用所有参数从dnn获取完全友好的完整url?我认为这将满足您的需求
string url = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl;
不幸的是,在DNN中获取当前URL并不是一种简单的方法,因为URL在到达模块之前会被重写 我们通常会使用
Globals.NavigateURL
重新生成URL。您可以使用DotNetNuke.Common.Utilities.UrlUtils.GetQSParamsForNavigateURL
从当前URL获取所有查询字符串参数
所以,你最终会得到这样的结果:
var currentUrl = Globals.NavigateURL(
this.TabId,
this.Request.QueryString["ctl"],
UrlUtils.GetQSParamsForNavigateURL());
这将为您提供一个用户友好的url,它将与
Request.Uri.AbsoluteUri
有相同的问题,这很有效!非常好地解决了一个棘手的问题,并且都在一行代码中。
var currentUrl = Globals.NavigateURL(
this.TabId,
this.Request.QueryString["ctl"],
UrlUtils.GetQSParamsForNavigateURL());
`string url = TabController.CurrentPage.FullUrl;`