2016-06-18 9 views
1

私はすべてのメンバに関連するアクションとビューが存在するMemberというコントローラを持つASP MVC 5アプリケーションを持っています。このコントローラーで作成されたすべてのビューは、メニューとして機能するHTMLの単一の部分にラップする必要があります。別のビューがどのように見えるかもしれませんがコントローラのすべてのビューを再利用可能なテンプレートで囲む方法は?

<div class="member-menu"> 
    <!-- View code goes here --> 
    <p>Welcome</p> 
</div> 

<div class="member-menu"> 
    <!-- View code goes here --> 
    <p>Some other stuff here</p> 
</div> 

それはそう大きく成長しますので、私は可能であれば、すべてのビューでメニューコードの繰り返しを避けるしたいと思います例えば歓迎ビューは、次のようになります将来は。私は、共有のビュー、子のアクション、およびカスタムルーティングについていくつかの調査を行ってきましたが、このパターンに合ったものを見つけることはできませんでした。私がここでやろうとしていることは容易に可能ですか?この特定のタスクのために

答えて

1

、あなたがレイアウトを必要とするように見える

MenuWrapperTemplate.cshtml

<div class="member-menu"> 
    @RenderBody(); 
</div> 

ようこそビュー

@{ 
    Layout = "~/Views/Shared/MenuWrapperTemplate.cshtml"; 
} 
<!-- View code goes here --> 
<p>Welcome</p> 

これらは実際のメニューであれば、あなたはそれらを必要していますサイトのレイアウト/マスターがここで見てくださいMVC where to render menu view

あなたはおそらく、MVCとHtmlヘルパー(Render/RenderAction/partial)とレイアウトがどのように機能するかを把握する必要があります。私は(つまり、私は `レイアウト=「_layoutを」`指定する必要がありましたメニューレイアウトの上部にある)新しいレイアウトに元のレイアウトを追加した後

+0

これに役立ちます希望はとてもうまくいきました。これは理にかなっていますか?ありがとう! –

関連する問題