2011-04-26 82 views
0

我正在處理小型ASP.NET MVC項目,並且出現了奇怪的行爲。在這個點上,項目與ASP.NET MVC默認模板只有CSS樣式表不同。車身標籤完全是空的。在這裏你可以看到母版頁:正文標籤不呈現。 ASP.NET MVC

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title> 
     <asp:ContentPlaceHolder ID="TitleContent" runat="server" /> 
    </title> 

    <link href="<%: ResolveUrl("~/Content/Site.css") %>" rel="stylesheet" type="text/css" /> 
    <link href="<%: ResolveUrl("~/Content/ObscuraUI.css") %>" rel="stylesheet" type="text/css" /> 

    <script type="text/javascript" src="/Scripts/jquery-1.4.1.js" /> 
</head> 

<body> 
    <div class="page"> 

     <div id="header"> 
      <div id="title"> 
       <h1>Obscura.com</h1> 
      </div>    

      <div id="logindisplay"> 
       <% Html.RenderPartial("LogOnUserControl"); %> 
      </div> 

      <div id="menucontainer"> 

       <ul id="menu"> 
        <li class="ui-corners-all" ><%: Html.ActionLink("Home", "Index", "Home")%></li> 
        <li class="ui-corners-all" ><%: Html.ActionLink("About", "About", "Home")%></li> 
       </ul> 

      </div> 
     </div> 

     <div id="main"> 
      <asp:ContentPlaceHolder ID="MainContent" runat="server" /> 

      <div id="footer"> 
      </div> 
     </div> 
    </div> 
</body> 
</html> 

和家庭控制器索引視圖:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Home Page 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2><%: ViewData["Message"] %></h2> 
    <p> 
     To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>. 
    </p> 
    <img src="../../Content/Images/Design/blackpony1440.jpg" alt="" class="protectedContent" /> 
</asp:Content> 

我已經通過生成的HTML望着螢火蟲 - 頭部被正確地呈現,但身體標記是完全空的,但查看初始源顯示正確的HTML。我試圖在索引視圖中拋出一個異常,我得到了錯誤頁面。建設項目時我沒有有用的警告。但當我評論此線

<script type="text/javascript" src="/Scripts/jquery-1.4.1.js" /> 

一切都呈現良好。

我想到了一些腳本失敗,但如果我只導入一個空文件,我得到空的屏幕。它爲什麼這樣工作?

謝謝。

回答

8

對於<script>標籤,您不應使用自閉標籤(<tag/>)。正如你所觀察到的那樣,這樣做會讓瘋狂的事情發生。您需要使用此代替:

<script type="text/javascript" src="/Scripts/jquery-1.4.1.js"></script> 
+1

謝謝 - 我永遠不會想到這一點。 – danyloid 2011-04-26 13:06:31

+0

+1爲這個答案,哪個邏輯永遠不會建議!我曾在過去發生過這種事,在我試着用百靈鳥解決這個問題之前,我失去了一些頭髮,瞧! – 2011-04-26 13:09:32

+0

我很想知道爲什麼你必須這樣做!據我所知,這不只是一些特定於IE的怪異。很明顯,使用腳本標記,您可以在開始標記和結束標記之間使用實際的腳本代碼,但是真的很難讓瀏覽器支持自閉合標記嗎? – 2011-04-26 13:11:49