asp.net 使用 Base href 标签导致找不到我的代码文件

问题描述 投票:0回答:1
c# asp.net href
1个回答
0
投票

使用母版页解析 URL 可能会导致问题,因为您的子 aspx 页面可能位于任何位置 - 甚至可能有 4 个文件夹深。

但是,我认为没有任何理由或押韵:

<base href="/DMC/" />

为什么有以上?我会删除上面的内容。

现在,让我们解决“.icon”引用的问题。

因此,URL 的客户端解析不允许使用“~/”来表示根路径名。 (但是代码隐藏,任何带有 runat="server" 的服务器控件都可以为您解决!)

因此,最简单的解决方案是添加 runat="server" 标签,现在您可以使用服务器端“path”代码进行解析。

所以,这应该有效:

<link href="~/Content/BControl.ico" 
      rel="shortcut icon" type="image/x-icon" runat="server" />

您的按钮图像也是如此。如果嵌套 2 或 3 个文件夹深会怎样?路径名是相对于你的图片的

所以,你的按钮应该是这样的:

    <asp:ImageButton id="expPDF" 
     ImageUrl="~/Images/icons/pdf.png" 
     AlternateText="Export to PDF"
     style="background-color: white; border: none;" OnClick="expPDF_Click"
     runat="server" />

再次记下路径名称。我假设上面的 ImageUrl 文件夹“Images”位于根目录中。但是,假设它位于您的内容文件夹中。

再一次,如果你省略“~/”,那么路径名是相对于当前页面的 - 我们不想考虑或关心。

所以,ImageURL 可能是这样的:

     ImageUrl="~/Content/icons/pdf.png" 

因此,现在您的 aspx 页面是否位于某个文件夹中并不重要,因为路径名来自根目录(~/ = 站点的根目录)。

我尝试修改代码隐藏参考

不!不要搞乱它,你会破坏一切。

© www.soinside.com 2019 - 2024. All rights reserved.