【问题标题】:ASP.NET get URL of the loaded pageASP.NET 获取加载页面的 URL
【发布时间】:2014-08-01 09:33:57
【问题描述】:

我可能以错误的方式处理此问题,但我需要知道当前 ASP.NET 页面的当前 URL 或表单名称。

我有一个带有运行 ASP.NET 应用程序的 WebBrowser 的 C# 应用程序。每当我检查 WebBrowser 组件中的当前 URL 时,它总是说它是“Default.aspx”页面。当您在另一个浏览器中运行它时,这很好,但我需要知道确切的 URL 或表单。

我也尝试过创建一个 javascript 函数来返回当前 URL,但由于这个函数只添加到“default.aspx”页面(所以所有页面都可以访问这个函数)我只返回了“默认值” .aspx 的网址。

有什么想法吗?

谢谢!

编辑: 我忘了提到我使用通过 net.tcp 绑定的 WCF 事件。当 ASP.NET 应用程序接收到这样的事件时,它应该根据它所在的当前页面进行不同的处理。我无法使用 Request 或 HTTPContext.Current,因为我的情况是 NULL。

【问题讨论】:

  • 谢谢,我更新了我的问题。这些都行不通。
  • 你为什么不把你的脚本文件放在主js文件中。而不是 Default.aspx。把它放在你的主 js 文件中。我希望您的所有页面或任何母版页都会引用它。
  • System.ServiceModel.Web.WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.OriginalString 怎么样;
  • 我使用的不是WebOperationContext,而是InstanceContext。这没有 URI。对于 .js 文件,这可能是一个不错的方法。尽管我尝试在母版页中添加以下内容: 我调用了函数 GetUrl,并尝试调用这来自我的 C# WebBrowser 组件 - .Document.InvokeScript("GetUrl");。不过运气不好。

标签: c# javascript asp.net


【解决方案1】:

试试下面

private string GetCurrentURL()
{
  string appPath = Request.ApplicationPath.ToString();
  string[] strPath = Request.RawUrl.ToString().Split('/');
  if (strPath.Count() == 2)
  {
      return Request.RawUrl.ToString().Replace(appPath, "")
  }
  else
  {
     return Request.RawUrl.ToString().Replace(appPath, "").Substring(1));
  }
}

【讨论】:

  • 谢谢。我更新了我的问题,我无法使用 Request 对象,因为它是 NULL。
  • 你在 WCF 中得到 OperationContext 对象了吗??
  • 我在 ASP.NET 应用程序的 WCF 库中使用 InstanceContext。
猜你喜欢
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 2016-03-22
  • 2012-08-27
  • 2016-08-21
相关资源
最近更新 更多