从DNN 7.2中的代码获取URL参数

时间:2014-07-24 15:02:34

标签: url-routing dotnetnuke url-parameters

我希望在我的模块代码中获取包含URL参数的完整URL。

例如

来自此网址

http://Domain/Search-Space-For-Rent/Houston

TabController.CurrentPage.FullUrl

给我

//域/搜索空间出租

只有我需要从URL(休斯敦)获取最后一个参数

我也试过

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

我怎么能得到它?

2 个答案:

答案 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];
                        }
                    }
                }