2012-10-23 96 views
0

我開發一個網站與主菜單身體頁腳部分。
我使用的是網頁基地佈局_Layout.cshtml,我使用RenderPartial()方法來呈現標題,主菜單頁腳。對於身體,我正在使用RenderBody()方法。
_Layout.cshtml我有以下代碼:使用剃刀「的RenderPartial」和「RenderBody」,身體呈現在上面

<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> 

的事情是一個非常簡單的看法,這種簡單的視圖的內容顯示在頁面的最上方,而其餘的位於底部。而不是顯示頁眉MAINMENU- 我的網站 -footer它顯示它在我的網站 -header-MAINMENU英尺的順序。

我對MVC四處都很陌生;我一直在閱讀here關於在我的主佈局網站中使用RenderSection而不是RenderPartial的可能性,但是這可能是以這種方式顯示的原因嗎?大概我遠離基地,任何意見都非常感謝。

在此先感謝。

回答

2

這可能會發生,因爲你呈現菜單<table>。至少正文似乎缺少行和單元格標籤(<tr><td>...</td></tr>)。因此,表中沒有行和單元格,可能導致各種渲染問題。

如果您沒有渲染到表格中,而是將CSS用於佈局目的,它可能會有所幫助。

+0

你說得對!這是清理html的問題。謝謝! – Soph

0

這看起來與您正在做的MVC方面無關 - 看起來非常好。

該問題將與您的HTML。我建議使用瀏覽器開發工具之一瀏覽網站(例如在Chrome或IE中打開您的網站並按F12) - 您可以使用這些功能來檢查頁面上的可視元素與HTML 。這些工具作爲MVC程序員是非常寶貴的。

使用表來控制網頁的佈局不鼓勵使用css佈局。你可以通過Google找到一些基本的CSS佈局模板來開始。