我对ASP.NET相对路径感到困惑,请有人帮忙吗?
在Master Page中我给出了一个链接标签引用:
<a href="~/Account/Login.aspx">Login</a>
Run Code Online (Sandbox Code Playgroud)
从ASP.NET官方文档我读到:
下面的示例示出了用于指定一个根目录相对路径〜操作者使用图像服务器控制在这个例子中,当对图像,图像文件是从直接位于Web应用程序的根目录下的图像文件夹中读出,而不管页面所在网站的位置.
<asp:image runat="server" id="Image1"
ImageUrl="~/Images/SampleImage.jpg" />
使用登录标记,当我从/ Account文件夹中的页面单击链接时,我被重定向到:
/Account/~/Account/Login.aspx
Run Code Online (Sandbox Code Playgroud)
为什么?为什么?^ h
Dav*_*vid 29
因为您直接在标记中使用它,而不是在服务器控件中使用它.像这样简单的东西应该解决它:
<a runat="server" href="~/Account/Login.aspx">Login</a>
Run Code Online (Sandbox Code Playgroud)
基本上,~
路径引用需要在服务器上进行转换,因为它是对应用程序基本目录的服务器路径的引用.纯HTML标记不在服务器上处理,它只是按原样交付给客户端.只有服务器处理的代码才会将~
路径转换为它解析的内容.
使用这个命令
<a href="<%=Page.ResolveUrl("~/product.aspx")%>" >Link To Products</a>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27047 次 |
最近记录: |