2011-06-23 28 views
1

我有一個頁面:在頁面組合段定義

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

這兩個包含:

@section Head { 
... 
} 

和(當然),我的佈局文件包含:

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

這個想法是,每個頁面有頭部的東西(如JavaScript包括,CSS等)可以通過該部分。問題是每個頁面只有一個定義是允許的。這通常如何處理?

回答

0

我不推薦在RenderAction的結果中使用Section,因爲這通常用於View Pages而不是partials。

這將是更好地在您的託管頁面佈局如下:

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

來電來@ Html.Action()是局部的觀點,我稱他們的觀點是我可以整齊地包裝一塊用戶界面,這樣我就可以將這些碎片組合起來,就像我喜歡沿着路走。我試圖解決的問題是每件作品都想添加一些東西到,我想通過一個部分來完成。你的建議是行不通的,因爲我不想要一切 – ekkis

0

我無法找到一個很好的辦法做到這一點,所以我反而添加的屬性到我的基地視圖模型,將舉行需要進入<head>的信息,然後在我的佈局頁面中有一個RenderPartial(「Head」)。這樣,事情稍微強類型太多,而不是僅僅有任何頁面一放就亂的垃圾在:

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