2017-03-11 32 views
0

私のウェブサイトをaspxからcshtml(Razor)に変換する過程にあります。これは、2または3列のマスターページで問題が発生している場合を除き、これらをcshtmlレイアウトページに変換しようとする場合を除いて、問題なく進んでいます。aspxからcshtml(Razor)へのリファクタリング時のカラムの問題

Razorでは、基本的にすべてのセクションに対して別々のページを作成し、レイアウトページから@RenderPageを使用して呼び出します。おそらくそれ自体が間違っているでしょうか?基本的に、すべてのセクションが、基本的には3つ(または2つ)の列のラッパーであるメインコンテンツのセクションとは別に表示されています。私はこれを行うにはさまざまな方法を試したが、ページの横幅に表示される1のメイン列を取得するか、または互いに上に表示される列を取得しますが、他の2の書式は正しくありません。私は、CSSなどのすべてがaspxでうまく動作することを知っていますが、私は明らかにRazorで何か間違っています。

CSHTML新しいレイアウトページ

<body> 
    <div id="container"> 
     <div id="top"> 
      @RenderPage("~/Views/Shared/_Top.cshtml") 
     </div> 
     <div id="header"> 
      @RenderPage("~/Views/Shared/_Header.cshtml") 
     </div> 
     <div id="nav"> 
      @RenderPage("~/Views/Shared/_Nav.cshtml") 
     </div> 

     <div class="main"> 
      @RenderPage("~/Views/Shared/_Main.cshtml") 

      <div class="columnVerySmall"> 
       @RenderPage("~/Views/Shared/_ColumnVerySmall.cshtml", false) 
      </div> 

      <div id="columnLarge"> 
       @RenderBody() 
      </div> 

      <div id="columnSmall"> 
       @RenderPage("~/Views/Shared/_ColumnSmall.cshtml", false) 
      </div> 
     </div> 

     <div id="footer"> 
      @RenderPage("~/Views/Shared/_Footer.cshtml") 
     </div> 

     <div id="scripts"> 
      @RenderPage("~/Views/Shared/_Scripts.cshtml") 
     </div> 
    </div> 
</body> 

旧ASPXマスターページ:

<div class="main"> 
<main role ="main" class="mainWrapper"> 
     <div class="columnVerySmall"> 
      <asp:ContentPlaceHolder ID="columnVerySmallContent" runat="server"></asp:ContentPlaceHolder> 
     </div> 
     <div class="columnLarge"> 
      <asp:ContentPlaceHolder ID="columnLargeContent" runat="server"></asp:ContentPlaceHolder> 
     </div>      
     <div class="columnSmall"> 
      <asp:ContentPlaceHolder ID="columnSmallContent" runat="server"></asp:ContentPlaceHolder> 
     </div> 
</main> 
</div> 

答えて

0

私は以下のコードブロックに示すように、メインセクションを変更することでこの問題を解決するために管理しています。私は基本的に私のレイアウトに "メイン"コードを追加し、次に列の@Renderを追加しました。私は本当に私が最初にしようとしていたように、 "メイン"のための別のページを持って、それをレイアウトページから@RenderPageを使用して呼び出すことによってこれを行うことができません。これは私が変更したものです:

<div class="main"> 
     <main role="main" class="mainWrapper"> 
      <div class="columnVerySmall"> 
       @RenderPage("_ColumnVerySmall.cshtml")     
      </div> 
      <div class="columnLarge"> 
       @RenderBody() 
      </div> 
      <div class="columnSmall"> 
       @RenderPage("_ColumnSmall.cshtml") 
      </div> 
     </main> 
    </div> 
関連する問題