【问题标题】:Body tag does not render. ASP.NET MVC身体标签不呈现。 ASP.NET MVC
【发布时间】:2011-04-26 12:55:11
【问题描述】:

我正在处理小型 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 - 头部正确呈现,但 body 标记完全为空,但查看初始源显示正确的 html。我试图在索引视图中抛出异常,我得到了错误页面。构建项目时我没有有用的警告。但是当我评论这一行时

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

一切都渲染得很好。

我想到了一些脚本失败,但如果我只导入一个空文件,我会得到空屏幕。为什么会这样?

谢谢。

【问题讨论】:

    标签: jquery asp.net-mvc


    【解决方案1】:

    您不应该为 &lt;script&gt; 标签使用自闭合标签 (&lt;tag/&gt;)。正如您所观察到的,这样做会使疯狂的事情发生。你需要改用这个:

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

    【讨论】:

    • +1 为这个答案,这是逻辑永远不会建议的!过去我也遇到过这种情况,在我在百灵鸟上尝试这个解决方案之前掉了几根头发,瞧!
    • 我很想知道你为什么要这样做!据我所知,这不仅仅是一些特定于 IE 的怪事。显然,使用脚本标签,您可以在开始标签和结束标签之间拥有实际的脚本代码,但是让浏览器也支持自闭合标签真的那么难吗?
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多