2011-10-14 10 views
6

私は1週間に1回変更するbennerとdivで構成される部分的なビューを持っています。 このバナーは、同じレイアウトの10ページに埋め込まれています。mvc3は別の部分に部分図を埋め込みます

Index.cshtmlまたはAboutUs.cshtml、のようなページを与える両方の部分図であるし、私の質問_Layout.cshtml laypoutを持つことがある:

私はバナーをレンダリングIndex.cshtmlかAboutUs.cshtmlでコードをinserことができます.cshtml?

何かのように:Index.cshtmlまたはAboutUs.cshtml内部

私が持っている@ Html.Renderbanner( "banner.cshtml");

答えて

6

はい、共有ビューフォルダで

@{ Html.RenderPartial("_Banner"); } 

、あなたの部分図を追加し、それを呼び出す_Banner.cshtml

0

確かに、あなたは常に可能性:任意のビューから

@Html.Partial("Banner") 

か部分図。これにより、このヘルパーを呼び出した場所に部分的にBanner.cshtmlがレンダリングされます。

1

@ Html.RenderPartial( "YourViewName")を使用します。

0

最初に、明確にするために、インデックスとAboutUsはシナリオで実際に部分的なビューですか?それは 私のアドバイスを変更することがありますが、通常、私は3つのオプションを参照してください。

  1. レイザーヘルパーを、次のコードでにApp_CodeにBanner.cshtmlを作成します。

    @helper Show(){ 
        <img src="mybanner.png"/> 
    } 
    

    次にIndex.cshtmlに呼び出します:

    @Banner.Show() 
    
  2. のHTMLヘルパー拡張 、おそらく行き過ぎここでビット(ウェブ上のチュートリアルを参照してください)

  3. 部分図: "_MyBanner.cshtml" を作成し、Index.cshtmlで次のコマンドを使用します。

    @Html.Partial("_MyBanner"); 
    

(数3

注意:Html.PartialとHtml.RenderPartialには違いがあります。後者は出力ストリームに直接書き込みを行い、かっこで呼び出す必要があります。 MVC AFAIKでは、Html.Partialを使用することをお勧めします。

0

あなたはについてでsecctionを見る必要がある場合はlayout.cshtml

@if (IsSectionDefined("Sidebar")) 
    { 
     <div id="page"> 
      <!-- end #content --> 
      <div id="content"> 
       @RenderBody() 
      </div> 
      <div id="sidebar"> 
       @RenderSection("Sidebar", required: false) 
      </div> 
      <div style="clear: both;"> 
       &nbsp;</div> 
     </div> 
     <!-- end #page --> 
     <!-- end #sidebar --> 

    } 
    else 
    { 
     <div id="page"> 
      <!-- end #content --> 
      <div id="content2"> 
       @RenderBody() 
      </div> 
      <div style="clear: both;"> 
       &nbsp;</div> 
     </div> 
     <!-- end #page --> 
     <!-- end #sidebar --> 

    } 

でRenderSectionを作成することができます。あなたはそれを

が含まれていないバナーが必要ないけない場合CSHTML

使用

@section Sidebar{ 
    @Html.Partial("_yourbanner") 
} 

関連する問題