移动的Web表单不加载

时间:2017-07-19 12:22:24

标签: c# asp.net directory

我是asp.net的新手,我有带嵌套母版页的asp.net应用程序。 (.Net 3.5)我在根目录下有一个Web表单,我把它移动到了我在root下创建的文件夹。从这一点开始,当Web表单加载时,我开始得到“不能使用前导..退出顶层目录”错误。我在网上挖掘,我尝试了前缀“〜”,“/”,“../”,但我无处可去。我的代码如下。

<li>
     <a href=Staff/New_Staff.aspx">Add New Staff</a>
</li>

我尝试在“Staff”目录下再创建一个Web表单,但是这个表单在加载时也会生成相同的错误。感谢您的帮助。

2 个答案:

答案 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>