asp.net:在正常的非服务器端html控件中,指的是相对于根目录的页面
我有一个嵌套很深的页面。和根路径中的一个。在深度嵌套的页面中,我有一个锚定标记,它应该导航到另一个页面(不在根中,但很容易指定根相对路径) 我尝试指定根相对路径时执行了以下操作:asp.net:在正常的非服务器端html控件中,指的是相对于根目录的页面,asp.net,url,relative-path,root,Asp.net,Url,Relative Path,Root,我有一个嵌套很深的页面。和根路径中的一个。在深度嵌套的页面中,我有一个锚定标记,它应该导航到另一个页面(不在根中,但很容易指定根相对路径) 我尝试指定根相对路径时执行了以下操作: ->这一个给了我一个404错误。它无法将~部分解析为根路径 另一个选项是向上移动一个目录: ->这真让人头痛 然后我试了一下: ->这又给了我一个404。它只是删除了localhost://部分之后的内容,并在其上附加了/home/main.aspx 在这里指定根相对路径的方法是什么 PS:我假设根相对路径将解析为服务
->这一个给了我一个404错误。它无法将~
部分解析为根路径
另一个选项是向上移动一个目录:
->这真让人头痛
然后我试了一下:
->这又给了我一个404。它只是删除了localhost://
部分之后的内容,并在其上附加了/home/main.aspx
在这里指定根相对路径的方法是什么
PS:我假设根相对路径将解析为服务器控件如果使用asp.net超链接控件,则可以使用“~”。如果你不想使用服务器控件,我认为你的服务器被卡住了 “/”将通过常规链接将您带到站点的根目录,但您必须检查虚拟目录是如何设置的。只有
WebControl.ResolveUrl
方法才能识别波浪号(~),因此您必须在页面
上调用此方法,这是一种WebControl
<a href='<%=ResolveUrl("~/home/main.aspx") %>'>Home</a>
但我也通过将虚拟路径
属性设置为/
解决了这个问题。它帮助…@deo-/
和~/
引用了两种不同的路径-虽然它们在服务器上的开发环境中可能看起来相同,但可能不同/
是服务器的绝对根,而~/'是当前应用程序的绝对根。你看到区别了吗?您通常只想使用
~/。使用
/`时,请确保您了解它将指向的位置。您还可以在HTML控件上设置runat=“server”,ASP.NET将~/转换为应用程序根目录。