2010-09-22 29 views
0
內容頁

上顯示我有一個形象,我的母版頁上這樣的:母版頁圖像不

<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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <br /> 
      <br /> 
      <br /> 
      <br /> 
      <br /> 
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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 /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <br /> 
      <br /> 
      <br /> 
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <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 /> 
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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 /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <asp:LinkButton ID="LinkButton1" runat="server" style="color: #CFCFF3; font-size: xx-large" onclick="LinkButton1_Click">LogOut</asp:LinkButton> 
      <br /> 
      <br /> 
&nbsp;&nbsp; 
      </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 /> 
&nbsp;&nbsp;&nbsp;&nbsp; 
     <asp:GridView ID="GridView1" runat="server" Height="212px" 
      onselectedindexchanged="GridView1_SelectedIndexChanged" Width="434px"> 
     </asp:GridView> 
    </p> 
    <br /> 


</asp:Content> 

回答

9

RPM1984幾乎是正確的。您應該使用~來指示相對於應用程序根目錄的路徑。但是,您應該將其轉換爲瀏覽器可以理解的路徑。如果您正在使用像自動完成的Image之類的ASP.NET控件。如果您使用的是HTML標記(沒有runat="server"),則必須使用Page.ResolveClientUrl()手動翻譯路徑。

例如:

<img src="<%= ResolveClientUrl("~/Images/logo.jpg") %>"/>

然而在這種情況,你可能會更好過使用Image控件:

<asp:Image runat="server" ImageUrl="~/Images/logo.jpg"/>
+0

你說得對。 +1 – RPM1984

+0

即使這不適合我。當我使用這個時,即使在母版頁中也看不到圖像。 –

+0

是的這是工作。但爲什麼? 我的意思是「/> –

2

儘量不要使用相對路徑。

使用絕對:

<img src="~/Images/logo.jpg" /> 

這是假設的「影像」是你的web應用程序的根目錄下的文件夾。

關於母版頁的事情要記住的是,它們確實是句法糖(類似於部分類)也就是說,當您將圖像放入母版頁時,.NET CLR將創建內容頁與主信息 - 所以圖像參考將是不變

這不是../Images從主,其../Images從它放在內容。

換句話說,對於客戶端,只有一個頁面(ASPX - 內容頁面),它不像一個神奇的父頁面已被創建,它保存到URL引用。

HTH

+0

是的,我試過這個,但是當我使用〜圖像即使在母版頁上也不顯示。 –

+0

你是什麼意思「在母版頁上」。你可以顯示你的主頁HTML和內容頁面HTML不是工作嗎? – RPM1984

+0

圖片生活在/Root/Images/logo.jpg?只需使用絕對路徑 - 不同目錄中的相對路徑,主頁面和內容頁面就不會很好地一起玩。 – Carson63000

0

我有同樣的問題。

我的母版頁的內容沒有顯示,但Web表單內容沒有顯示。 會發生什麼情況是內容頁面將覆蓋主頁面的內容。

我解決了它在ID =「Example」的MasterPage中創建一個新的ContentPlaceHolder。

然後在Web窗體,我改變ContentPlaceholderID = 「OlderID」ContentPlacerHolderID = 「實施例」