我希望在我的模块代码中获取包含URL参数的完整URL。
例如
来自此网址
http://Domain/Search-Space-For-Rent/Houston
TabController.CurrentPage.FullUrl
给我
//域/搜索空间出租
只有我需要从URL(休斯敦)获取最后一个参数
我也试过
Globals.NavigateURL(this.TabId, this.Request.QueryString["ctl"], UrlUtils.GetQSParamsForNavigateURL());
我怎么能得到它?
答案 0 :(得分:1)
通常在DNN中,您只需从QueryString ex:
获取var myParam = Request.Querystring["paramName"];
构建该URL时使用的是哪个参数名称?我会假设您有一个自定义网址提供商,可以更改类似"& city = Houston"改为/休斯顿。如果是这种情况,只需抓住名为City的查询字符串参数。
更新: 获得"姓名"对于页面,假设休斯顿是DNN页面的场景,您可以执行以下操作。
var tc = new TabController();
var ti = tc.GetTab(TabId);
var pageName = ti.TabName
TabId来自DNN,假设您的模块继承自PortalModuleBase,您应该可以访问它。然后,您可以从TabController获取TabInfo,并从该TabInfo对象中访问属性。
答案 1 :(得分:1)
所以我使用所有查询字符串参数重新生成了URL。
string path = TabController.CurrentPage.FullUrl;
foreach (string key in Request.QueryString.AllKeys)
{
if (key != "TabId" && key != "language" && key != "_escaped_fragment_")
{
if (key != null)
{
path += "/" + key + "/" + Request.QueryString[key];
}
else
{
path += "/" + Request.QueryString[key];
}
}
}