【问题标题】:How to Convert "~/default.aspx" to "http://www.website.com/default.aspx" C#?如何将“~/default.aspx”转换为“http://www.website.com/default.aspx”C#?
【发布时间】:2009-04-22 15:50:47
【问题描述】:

我知道 ASP.NET 会自动执行此操作,但由于某种原因,我似乎找不到该方法。

帮助任何人?正如标题所说。

如果我执行 Response.Redirect("~/Default.aspx"),它可以工作,但我不想重定向站点。我只想要完整的网址。

谁能帮帮我?

【问题讨论】:

    标签: c# methods


    【解决方案1】:

    对于“/#{path}/Default.aspx”部分,使用:

    Page.ResolveUrl("~/Default.aspx")
    

    如果您需要更多:

    Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port
    

    【讨论】:

      【解决方案2】:

      在web控件中,方法是ResolveUrl("~/Default.aspx")

      【讨论】:

        【解决方案3】:

        看看VirtualPathUtility 类。

        【讨论】:

          【解决方案4】:

          至少有三种方法可以做到这一点。我asked如果有任何区别,但我没有得到任何答案。

          1. Control.ResolveUrl
          2. Control.ResolveClientUrl
          3. VirtualPathUtility.ToAbsolute

          【讨论】:

          【解决方案5】:

          这是我使用的:

          Response.Redirect(Response.ApplyAppPathModifier("~/default.aspx"))
          

          【讨论】:

          • 使用 Response.ApplyAppPathModifier() 和 Page.ResolveUrl() 有区别吗,特别是在处理 MVC 页面(不是 Web 表单)时?
          • 哦,我的意思不是重定向,而是获取 URL(例如设置 src 属性等)。
          【解决方案6】:

          这里有一篇文章解释了在 ASP.NET 中解析路径的各种方法之间的区别 -

          Different approaches for resolving URLs in ASP.NET

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-06-29
            • 1970-01-01
            • 1970-01-01
            • 2011-02-10
            • 2011-09-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多