【问题标题】:Get application url with ASP.Net使用 ASP.Net 获取应用程序 url
【发布时间】:2015-04-20 13:10:54
【问题描述】:

会话到期时,我需要重定向到应用程序的CommonPage.aspx 页面。

我的应用程序网址类似于http://Name_IP/applicationname/FolderName/Home.aspx

从上面的网址我需要重定向到http://Name_IP/applicationname/commonpage.aspx

我使用下面的代码来重定向

"http://localhost://" + Request.Url.Port.ToString() + "//applicationname/commonpage.aspx"

以上代码将在 localhost 中运行。但它在部署后不起作用。 怎么做?请推荐

如何将 localhost 替换为 Name_IP?

【问题讨论】:

    标签: c# asp.net vb.net deployment localhost


    【解决方案1】:

    Request.Url 包含来自请求的完整 URL。查看Host 属性。

    【讨论】:

      【解决方案2】:

      一个好的方法是创建一个新的Uri

      var uri = new Uri(Request.Url, "applicationname/commonpage.aspx");
      

      这将返回一个Uri,其值为

      http://foo.bar:8080/applicationname/commonpage.aspx
      

      【讨论】:

        【解决方案3】:

        您可以通过使用获取主机名,包括端口

        Request.Url.GetLeftPart(UriPartial.Authority)
        

        你可以像这样使用

        var url = String.Format(
            "{0}/{1}"
            Request.Url.GetLeftPart(UriPartial.Authority),
            "applicationname/commonpage.aspx")
        

        这会产生类似的东西

        http://foo.bar:8080/applicationname/commonpage.aspx
        

        【讨论】:

        • 很好地演示了GetLeftPart,但String.Format 对于简单的字符串连接来说完全是多余的。
        • @Richard 你完全正确。我添加了另一个答案,无论如何这是一个更好的方法。不过,我会把这个留在这里以供后代使用。
        猜你喜欢
        • 2017-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-30
        • 1970-01-01
        相关资源
        最近更新 更多