在 Asp.net 中使用用户控件时不显示图像

Do not show image when use User Control In Asp.net

我的项目 (asp.net) 中有一个具有图像的用户控件。它有以下代码:

 <%@ Control Language="C#" ClassName="Header" %>
 <asp:Panel ID="Panel1" runat="server">
        <img alt="The Night Owl" 
            src="../Images/bookshelf.jpg" 
            width="800" height="110"/>
    </asp:Panel>
    <asp:Panel id="menuPanel" runat="server">
        <a href="../Default.aspx">Home</a> |
        <a href="../Titles.aspx">Titles</a> |
        <a href="../Authors.aspx">Authors</a> |
        <a href="../Publishers.aspx">Publishers</a>
    </asp:Panel>

我可以在用户控件中看到图像,但是当我在 default.aspx 页面中使用它时,它不显示图像。我的 default.aspx 代码是:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register src="~/controls/Header.ascx" tagname="Header" tagprefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>The Night Owl</title>
    <link href="styles.css" rel="Stylesheet" type="text/css"/>
</head>
<body>
    <form id="form1" runat="server">


    <uc1:Header ID="Header1" runat="server" />
    <h1><span lang="en-us">Home Page</span></h1>
    <asp:Panel runat="server">
        Welcome to The Night Owl, where all of 
        your technical needs are met!
    </asp:Panel>
    </form>
</body>
</html>

由于 default.aspx 页面中的 src="../Images/bookshelf.jpg" 无法加载,用户控件不能很好地引用图像,除非您指定整个路径或页面和用户控件位于同一文件夹中, 您的 UC 在子文件夹中,但默认页面不在, 将 src 更改为 ~/subf/subf1/img.jpg.

如果该页面和 UC 位于同一个文件夹中,您的 src 将起作用。 但是如果它们不在同一个文件夹中,您应该像我提到的那样更改 src

关于 Path.

有点事