0

我正在开发一个带有HeaderMain MenuBodyFooter部分的网站。
我正在使用网页基础布局_Layout.cshtml,我使用该RenderPartial()方法呈现Header、Main MenuFooter。对于身体,我使用的是RenderBody()方法。
_Layout.cshtml我有以下代码:

<body style="margin: 0">
<form name="FormStart" method="post" action="Start.aspx" id="FormStart">
<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
    <tr>
        <td valign="top" width="1px"></td>
        <td valign="top" align="center" width="972" bgcolor="#FFFFFF">
            <table id="Table1" cellspacing="0" cellpadding="0" width="972" border="0" bordercolor="yellow">
                 <!-- HEADER -->
                 @{Html.RenderPartial("_Header");}

                 <!-- MAIN MENU -->
                 @{Html.RenderPartial("_Menu");}

                 <!-- CONTENT -->
                 @RenderBody()
             </table>
             <br />
             <!-- FOOTER -->
             @{Html.RenderPartial("_Footer");}
         </td>
    </tr>
</table>
</form>
</body>

另一方面,我使用以下代码创建了一个非常简单的视图

@{
    ViewBag.Title = "Page";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h3>You just clicked </h3><h1>NATURAL ALOE SECTION</h1>

问题是,这个简单视图的内容显示在页面的最顶部,而其余部分显示在底部。它不是显示HEADER-MAINMENU- my site -FOOTER而是按我的站点-HEADER-MAINMENU-FOOTER的顺序显示。

我对 MVC 很陌生;我一直在这里阅读有关在我的主布局站点中使用 RenderSection 而不是 RenderPartial 的可能性,但这可能是它以这种方式显示的原因吗?可能我离基地很远,任何建议都非常感谢。

提前致谢。

4

2 回答 2

2

可能是因为. _ <table>至少正文似乎缺少行和单元格标记 ( <tr><td>...</td></tr>)。因此,您的表格中没有可能导致各种渲染问题的行和单元格。

如果您不渲染到表格中并使用 CSS 进行布局,这可能会有所帮助。

于 2012-10-23T15:23:18.267 回答
0

这看起来与您正在做的 MVC 方面无关 - 看起来非常好。

问题在于您的 HTML。我建议使用其中一种浏览器开发工具查看该站点(例如,在 Chrome 或 IE 中打开您的站点并按 F12) - 您可以使用这些功能来检查页面上的视觉元素与 HTML 的关系. 这些工具对于 MVC 程序员来说是无价的。

不鼓励使用表格来控制网页的布局,而是使用 css 进行布局。您可以通过 Google 找到一些基本的 css 布局模板以开始使用。

于 2012-10-23T23:08:06.860 回答