我正在开发小型 ASP.NET MVC 项目,并且我得到了一个奇怪的行为。目前该项目与 ASP.NET MVC 默认模板的区别仅在于 CSS 样式表。 body 标签完全是空的。在这里您可以看到母版页:
<%@ 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>
我用 firebug 查看了生成的 html - head 渲染正确,但 body 标记完全为空,但查看初始源显示了正确的 html。我尝试在索引视图中引发异常,但收到错误页面。我在构建项目时没有任何有用的警告。但是当我评论这一行时
<script type="text/javascript" src="/Scripts/jquery-1.4.1.js" />
一切都渲染得很好。
我想到了一些脚本失败,但如果我只导入一个空文件,我会得到空屏幕。为什么会这样?
谢谢。
您不应该使用自闭合标签,例如您的网页表单或页面中的“ ”。这样做会导致疯狂的事情发生,并在浏览器中出现意想不到的行为。甚至浏览器检查工具也会表明此问题是由于 Quirck 模式造成的。
也请遵循协议,尤其是
<script>
标签和其他服务器端控件。使用结束标签如下:
<script type="text/javascript" src="/Scripts/jquery-1.4.1.js"></script>