【问题标题】:How to get full url from dotnetnuke如何从 dotnetnuke 获取完整的 url
【发布时间】:2013-11-20 08:27:29
【问题描述】:

如果我使用这个:

Request.Url.AbsoluteUri

我得到完整的网址,例如:

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

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

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

我明白了

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

但是有了这个我没有得到参数:(
如何从包含所有参数的 dnn 获取完全友好的完整 url?

【问题讨论】:

    标签: c# asp.net dotnetnuke


    【解决方案1】:

    不幸的是,在 DNN 中获取当前 URL 并不容易,因为 URL 在到达您的模块之前会被重写。

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

    所以,你最终会得到这样的结果:

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

    【讨论】:

      【解决方案2】:

      我想这会让你得到你想要的

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

      【讨论】:

      • 那会和Request.Uri.AbsoluteUri有同样的问题
      • 行得通!一个棘手的问题的非常好的解决方案,并且全部在一行代码中。
      【解决方案3】:
      `string url = TabController.CurrentPage.FullUrl;`
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-22
        • 2014-07-04
        • 1970-01-01
        • 2013-04-08
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多