2011-04-26 324 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