0

HeaderMain MenuBody、およびFooterセクションを含むサイトを開発しています。メソッドを使用してヘッダー、メインメニューフッターをレンダリングする
Webページベースレイアウト_Layout.cshtmlを使用しています。体にはメソッドを使っています。 私は次のコードを持っています:RenderPartial()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を表示する代わりに、 my site -HEADER-MAINMENU-FOOTERの順に表示します。

私はMVCをまったく使い始めたばかりです。メインのレイアウト サイトで RenderPartial の代わりに RenderSection を使用する可能性についてここで読んでいますが、このように表示されているのはこれが理由でしょうか? おそらく私はベースから外れているので、アドバイスをいただければ幸いです。

前もって感謝します。

4

2 に答える 2

2

これは、ヘッダーメニュー本文<table>. 少なくとも本文には、行とセルのタグ ( <tr><td>...</td></tr>) が欠けているようです。したがって、テーブルには、あらゆる種類のレンダリングの問題を引き起こす可能性のある行やセルはありません。

テーブルにレンダリングせず、代わりにレイアウト目的で CSS を使用すると、おそらく役立つでしょう。

于 2012-10-23T15:23:18.267 に答える
0

これは、あなたがしていることのMVC側とは何の関係もないように見えます-それは完全にうまく見えます。

問題はHTMLにあります。ブラウザ開発ツールの1つを使用してサイトを確認することをお勧めします(たとえば、ChromeまたはIEでサイトを開き、F12キーを押します)。これらの機能を使用して、ページの視覚要素がHTMLにどのように関連しているかを調べることができます。 。これらのツールは、MVCプログラマーとして非常に貴重です。

テーブルを使用してWebページのレイアウトを制御することは、レイアウトにcssを使用することを優先して推奨されていません。開始するには、Google経由でいくつかの基本的なCSSレイアウトテンプレートを見つけることができます。

于 2012-10-23T23:08:06.860 に答える