【问题标题】:moved web form does not load移动的 Web 表单无法加载
【发布时间】:2017-07-19 12:22:24
【问题描述】:

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

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

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

【问题讨论】:

  • 为什么不使用asp:Hyperlink 和像~/Staff/New_Staff.aspx 这样的应用程序根相对URL?

标签: c# asp.net directory


【解决方案1】:

如果我没记错的话,你在 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,就服务器而言。

/ 将始终指向站点的根目录。

【讨论】:

    【解决方案2】:

    在 ASP.NET Web 窗体中,我们通常使用 HyperLink 服务器控件来创建 URL,如 mason 所说。

    <asp:HyperLink runat="server" NavigateUrl="~/Staff/New_Staff.aspx" Text="Add New Staff"/>
    

    如果您不想使用它,您可以手动添加&lt;%= ResolveUrl("~/") %&gt;

    <a href="<%= ResolveUrl("~/") %>Staff/New_Staff.aspx">Add New Staff</a>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-24
      • 2019-03-17
      • 2012-11-12
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 2010-12-18
      • 2023-03-23
      相关资源
      最近更新 更多