在asp.net的URL开头〜究竟做了什么?

时间:2010-03-17 12:19:41

标签: .net asp.net iis hyperlink

我正在编辑某个网站,该网站在使用端口80(默认)之前在网址上不需要(因为它是默认的..)

但港口(由于技术原因)需要更改,现在必须通知它。

我可以通过ip:port \ page访问主页,如下所示:

1.2.3.4:81\page.aspx

网站中的每个链接都是这样组成的:

<asp:HyperLink runat="server" Text="random" NavigateUrl="~/fdr/whatever.aspx" />

每当我点击一个链接时,页面都没有加载,但是URL是在浏览器的URL栏上组成的,那么我只需在URL中的IP之后添加“:80”即可。< / p>

由于查询字符串的存在(换句话说,因为已经可以访问URL)我之前认为链接中URL的开头的'〜'说“保持在同一个网站,只需更改为此文件夹中的此网页“,但如果端口消失,我现在假设该地址已被请求(可能是IIS)以获取当前网站的位置。

我当时想知道(而不是必须将端口添加到我的网站中的每个链接)如何设置链接中〜所请求的任何人以某种方式添加端口。我该怎么做?

- [编辑] -
查看我的另一个问题了解更多信息:

URL losing port number in every page load

2 个答案:

答案 0 :(得分:2)

它指向asp.net应用程序的当前根目录(可能位于网站的子目录中)。它允许链接的编码独立于应用程序是否存在于根文件夹中。

端口/域永远不会成为游戏的一部分。假设您的浏览器端口为80。

那就是说,将应用程序移出80端口的技术原因是什么?我知道没有一个正当理由,抱歉;)

答案 1 :(得分:1)

~符号称为应用程序根运算符。您可以阅读更多相关信息here (MSDN)并引用:

  

ASP.NET将〜运算符解析为   当前应用程序的根目录。您   可以结合使用〜运算符   用文件夹指定路径   基于当前的根目录。

     

以下示例显示〜   运算符用于指定a   图像的根相对路径   使用Image server控件在此   例如,从中读取图像文件   找到的Images文件夹   直接在Web的根目录下   申请,无论在哪里   页面所在的网站。

它本质上是属性System.Web.HttpRuntime.AppDomainAppVirtualPath的快捷方式。