【问题标题】:How to find the url of parent page of a User control如何找到用户控件的父页面的url
【发布时间】:2011-10-25 20:06:32
【问题描述】:

我有一个用户控件,如果执行某个操作,我想通过一些额外的查询字符串参数重定向到用户所在的页面。

所以,如果 UserControl.ascx 在 Home.aspx 上,我想重定向到 Home.aspx?action=true,如果 UserControl.ascx 在 Profile.aspx 上,我想重定向到 Profile.aspx?action=真的

所以基本上,在我的 UserControl.ascx.cs 中,我想获取父页面的 URL。我怎样才能得到它?

【问题讨论】:

    标签: asp.net user-controls ascx web-user-controls


    【解决方案1】:

    您可以查看Request.UrlRequest.RawUrlRequest.FilePath 以及Request 对象的一些其他类似属性 - 取决于您使用它的方式。

    这将为您提供来自浏览器的请求 URL,这将反过来告诉您您的控件所在的页面。

    【讨论】:

    • Request.Url 带回一个 System.Uri - on MSDN here
    【解决方案2】:

    您仍然可以从用户控件访问请求对象,因此请执行以下操作:

    string currentUrl = Request.Url.AbsoluteUri.ToString();
    

    【讨论】:

      【解决方案3】:

      Request.UrlReferrer 通常会为您提供上一页的 URL。在某些情况下它可能为空:

      • 从电子邮件中点击的链接
      • 保存到桌面的快捷方式
      • 欺骗性网址
      • 可能是某些设置或浏览器
      • 可能还有其他场景

      只要您的代码在 UrlReferrer 为空或无效时“运行良好”,您就可以继续使用了。

      【讨论】:

        【解决方案4】:
        Request.Url.Scheme + "://" + Request.Url.Host  + Request.RawUrl
        

        【讨论】:

        • 如果您解释了为什么它可以解决问题,您的回复会更有帮助。
        猜你喜欢
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 2013-11-09
        • 1970-01-01
        • 2013-11-29
        • 2012-03-01
        • 1970-01-01
        • 2019-06-08
        相关资源
        最近更新 更多