我是asp.net的新手,我有带嵌套母版页的asp.net应用程序。 (.Net 3.5)我在根目录下有一个Web表单,我把它移动到了我在root下创建的文件夹。从这一点开始,当Web表单加载时,我开始得到“不能使用前导..退出顶层目录”错误。我在网上挖掘,我尝试了前缀“〜”,“/”,“../”,但我无处可去。我的代码如下。
<li>
<a href=Staff/New_Staff.aspx">Add New Staff</a>
</li>
我尝试在“Staff”目录下再创建一个Web表单,但是这个表单在加载时也会生成相同的错误。感谢您的帮助。
答案 0 :(得分:0)
如果我没有错,你在href中使用双重代码。它应该是这样的,取决于你的文件夹结构。
<a href="Staff/New_Staff.aspx">Add New Staff</a>
和 对于找到这个线程的任何人来说,寻址相对路径总是会创建关于正确与否的争论。
根据您使用要寻址的路径的位置,具体取决于您如何处理路径。
一般来说:
。和./做同样的事情,但你不会使用。用文件名。否则,您将让浏览器从服务器请求.filename.ext作为文件。正确的方法是./filename.ext。
../解决了当前文件夹中某个级别的路径。如果您在路径/cheese/crackers/yummy.html中,并且您的链接代码在文档yummy.html中要求提供../butter/spread.html,那么您将寻址路径/ cheese / butter / spread。 html,就服务器而言。
/将始终解决网站的根目录。
答案 1 :(得分:0)
在ASP.NET Web窗体中,我们通常使用 HyperLink 服务器控件来创建URL,如 mason 所述。
<asp:HyperLink runat="server" NavigateUrl="~/Staff/New_Staff.aspx" Text="Add New Staff"/>
如果您不想使用它,可以手动添加<%= ResolveUrl("~/") %>
前缀。
<a href="<%= ResolveUrl("~/") %>Staff/New_Staff.aspx">Add New Staff</a>