2011-06-23 5 views
1

私はページを持っている:合成部の定義

@Html.Action("Index", "Product") 
@Html.Action("Index", "Vendor") 

これらの両方が含まれています

@section Head { 
... 
} 

と(もちろん)、私のレイアウトファイルが含まれています:

<head> 
... 
@RenderSection("Head", required:false) 
</head> 

頭に何かがあるすべてのページ(javascript include、cssなど)がセクションを介して行うことができるという考えがあります。問題は、1ページあたり1つの定義しか許されていないようだということです。これは一般的にどのように処理されますか?

答えて

0

RenderActionの結果内でSectionを使用することはお勧めできません。これは一般にView Pagesでは使用されていて部分的ではないためです。

あなたのホスティングレイアウトページに次のように持っている方が良いでしょう:

@section Head { 
    @Html.Action("foo") 
    @Html.Action("bar") 
} 
+0

を@ Html.Action()への呼び出しは、部分的なビューにある、と私はそれらを呼び出すのポイントです私はUIの部分をきちんとまとめることが許されているので、私は道路のようなものを組み合わせることができます。私が解決しようとしている問題は、それらの作品のそれぞれがに何かを加えたいと思っており、私はセクションを介してそれをすると思っていました。頭の中のすべてが欲しくないので、あなたが提案したことはうまくいかないでしょう – ekkis

0

私はこれを行うには良い方法を見つけることができませんでしたので、私が代わりに開催する私のベースのViewModelにプロパティを追加しました<head>に入り、レイアウトページにRenderPartial( "Head")が必要な情報。物事は少しあまりにも強く型付けされているこの方法では、単に任意のページを持つことで、ランダムなゴミを置くのではなく:

// Views/Shared/Head.cshtml 
@model ViewModel 
@foreach (var site in model.AuthorSites) 
{ 
    <link rel="me" type="text/html" href="@site" /> 
} 
関連する問題