如何找到用户控件的父页面的URL

10

我有一个用户控件,当执行某个操作时,我想要跳转回用户所在的页面,并添加一些额外的查询字符串参数。

比如说,如果 UserControl.ascx 控件在 Home.aspx 页面上,我想要重定向到 Home.aspx?action=true;如果该控件在 Profile.aspx 页面上,我想要重定向到 Profile.aspx?action=true。

因此,基本上,在我的 UserControl.ascx.cs 文件中,我想要获取父页面的 URL。我该如何获取呢?

4个回答

15

您可以查看Request.UrlRequest.RawUrlRequest.FilePath以及Request对象的其他类似属性,具体取决于您如何使用它们。

这将为您提供来自浏览器的请求URL,从而告诉您您的控件所在的页面是哪个。


Request.Url会返回一个System.Uri - 在MSDN这里 - mlhDev

2
您仍然可以从用户控件访问请求对象,因此可以执行以下操作:
string currentUrl = Request.Url.AbsoluteUri.ToString();

1

Request.UrlReferrer 可以获取到前一页的 URL...通常情况下。但是有一些情况下它可能为空:

  • 从电子邮件中点击的链接
  • 保存在桌面上的快捷方式
  • 欺骗性的 URL
  • 也许是某些设置或浏览器
  • 可能还有其他情况

只要你的代码在 UrlReferrer 为空或无效时“友好地运行”,那么你就可以放心使用。


-1
Request.Url.Scheme + "://" + Request.Url.Host  + Request.RawUrl

如果您解释一下为什么这个解决方案可以解决问题,那么您的回复会更有帮助。 - devlin carnate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接