【问题标题】:How to get ASP .net web application's virtual path?如何获取 ASP .net Web 应用程序的虚拟路径?
【发布时间】:2021-08-15 18:39:24
【问题描述】:

我有一个页面http://localhost:65248/ZeroLabs/msg_preview.aspx

我想获得http://localhost:65248/ZeroLabs 部分。

我的代码在这个页面运行Page_Load事件。

我没有在Request.Url 中找到任何好东西。

目前我用这个:

//http + :// + localhost:65248 + /ZeroLabs
string omg_wtf = Request.Url.Scheme + "://" + Request.Url.Authority + System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath;

我觉得这不是我应该得到我想要的东西的方式。 请问有什么不那么丑的方法吗?

【问题讨论】:

  • 嗯,Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf("/")) 是不是更“丑”了?请客观、客观地定义“丑陋”。
  • @HereticMonkey - 嗯......我希望有一些单一的财产......但你的方式也不那么丑陋......或者如果我们有类似的东西?asd=qwe/sdf......或者也许是的,如果我们不能在 AbsoluteUri 中拥有类似的东西......
  • 很好奇你为什么想要它。通常,您可以只使用波浪号来构建资源路径。尽管here 有很多方法可以获取完整路径
  • @Nikki9696 - 我用它来连接代码中的其他页面名称。例如,我构建了一个存储在物理路径 (string[] paths = Directory.GetFiles(path, "*.aspx")) 中的 *.aspx 页面列表,对应于http://localhost:65248/ZeroLabs,并将其提供给用户,以便他可以访问它们。这就像http://localhost:65248/ZeroLabs + / + 路径[i]。

标签: asp.net


【解决方案1】:

我不能 100% 确定,因为使用带有 Asp.Net 网络表单的网页已经很长时间了。但如果我没记错的话,您只需要使用 ~ 来获取您的 Web 应用程序/网站的虚拟路径。

所以~/ZeroLabs 应该适合你。试试看吧。

另见link on Stackoverflow。可能有用。

谢谢

【讨论】:

  • 谢谢。我在那里找到了HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpRuntime.AppDomainAppVirtualPath;。仍然没有一个属性,但这比我的垃圾代码更好。
猜你喜欢
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多