[英]Master page image doesn't display on content page
我的母版頁上有這樣的圖像:
<img src="../Images/logo.jpg" />
母版頁位於Root/MasterPages/masterpage.master
現在,此圖像顯示在Root/SomeDir/ContentPage.aspx
的內容頁面中,但不適用於Root/SomeDir1/SomeDir2/ContentPage.aspx
的內容頁面。 為什么?
母版頁HTML
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<style type="text/css">
#div_Main
{
height: 825px;
width: 1022px;
top: 16px;
left: 77px;
position: absolute;
margin-left: 14px;
}
#div_LeftPanel
{
width: 299px;
top: 179px;
left: 2px;
position: absolute;
height: 641px;
background-color: #7E8387;
}
#div_Content
{
width: 716px;
top: 180px;
left: 303px;
position: absolute;
height: 638px;
}
#div_Header
{
top: 0px;
left: 0px;
position: absolute;
height: 176px;
width: 1022px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="div_Main">
<div id="div_Header">
<img src="../Images/logo.jpg" />
</div>
<div id="div_Content">
<asp:ContentPlaceHolder ID="cph_WorkingArea" runat="server">
</asp:ContentPlaceHolder>
</div>
<div id="div_LeftPanel">
<br />
<br />
<br />
<br />
<br />
<asp:LinkButton
ID="lnkbtn_JObAspirantsList" runat="server"
style="color: #CFCFF3; font-size: xx-large"
onclick="lnkbtn_JObAspirantsList_Click">Job Aspirants List</asp:LinkButton>
<br />
<br />
<br />
<br />
<br />
<br />
<asp:LinkButton ID="lnkbtn_ERFList" runat="server"
style="color: #CFCFF3; font-size: xx-large" onclick="lnkbtn_ERFList_Click">ERF List</asp:LinkButton>
<br />
<br />
<br />
<br />
<br />
<br />
<asp:LinkButton ID="lnkbtn_InterviewFeedbackList" runat="server"
style="color: #CFCFF3; font-size: xx-large"
onclick="lnkbtn_InterviewFeedbackList_Click">Interview FeedbackList</asp:LinkButton>
<br />
<br />
<br />
<br />
<br />
<br />
<asp:LinkButton ID="lnkbtn_NewEmployeeList" runat="server"
style="color: #CFCFF3; font-size: xx-large"
onclick="lnkbtn_NewEmployeeList_Click">New Employees List</asp:LinkButton>
<br />
<br />
<br />
<asp:LinkButton ID="LinkButton1" runat="server" style="color: #CFCFF3; font-size: xx-large" onclick="LinkButton1_Click">LogOut</asp:LinkButton>
<br />
<br />
</div>
</div>
</form>
</body>
</html>
內容頁面HTML
<%@ Page Language="C#" MasterPageFile="~/MasterPages/HRMaster.Master" AutoEventWireup="true" CodeBehind="ERF.aspx.cs" Inherits="StarTechnologies.ERF" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cph_WorkingArea" runat="server">
<p>
<br />
<asp:GridView ID="GridView1" runat="server" Height="212px"
onselectedindexchanged="GridView1_SelectedIndexChanged" Width="434px">
</asp:GridView>
</p>
<br />
</asp:Content>
RPM1984幾乎是正確的。 您應使用~
指示相對於應用程序根目錄的路徑。 但是,您應該將其轉換為瀏覽器可以理解的路徑。 如果您使用的是ASP.NET控件(例如圖像),則會自動完成。 如果您使用的是HTML標簽(沒有runat="server"
),則必須使用Page.ResolveClientUrl()手動轉換路徑。
例如:
<img src="<%= ResolveClientUrl( "~/Images/logo.jpg" ) %>"/>
但是,在這種情況下,最好使用Image控件:
<asp:Image runat="server" ImageUrl="~/Images/logo.jpg"/>
盡量不要使用相對路徑。
使用絕對值:
<img src="~/Images/logo.jpg" />
假設“圖像”是Web應用程序根目錄下的文件夾。
關於母版頁,要記住的一點是,它們在某種程度上確實是語法糖 (類似於部分類),也就是說,當您將圖像放入母版頁中時,.NET CLR將使用母版信息創建內容頁-因此圖像參考將保持不變 。
這是從主不../Images,其../Images從它放在內容。
換句話說,對於客戶端而言 ,只有一個頁面(ASPX-內容頁面),這不像已經創建了一個神奇的父頁面來保存URL引用。
高溫超導
我有同樣的問題。
我的母版頁內容未顯示,但Web窗體內容顯示。 發生的情況是內容頁面覆蓋了母版頁的內容。
我解決了它,在母版頁中用ID =“ Example”創建了一個新的ContentPlaceHolder。
然后在Web窗體中,將ContentPlaceholderID =“ OlderID”更改為ContentPlacerHolderID =“ Example” 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.