2012-03-07 85 views
1

我正在開發ASP.NET MVC 3應用程序。我主要來自ASP.NET WebForms背景。我正在處理一個複雜佈局方案的應用程序。正因爲如此,我希望將所有的佈局代碼放在_Layout.cshtml中。我的挑戰是,每個頁面都有自定義的javascript邏輯。我發現如果這個JavaScript被包含在我的頁面中間,它就不起作用。所以我想做的就是把它移到其他地方。但爲了做到這一點,我需要類似於ASP.NET WebForms PlaceHolder控件的東西。理想情況下,我希望能夠做到這樣的事情:ASP.NET MVC 3 - 佔位符

<body> 
    <div id="myLayout" style="background-color:Gray; height:100%;"> 
    <div id="myContent" style="background-color:Silver;"> 
     @RenderBody()  
    </div> 
    <div id="myFooter" style="background-color:Silver;"> 
     Footer 
    </div> 
    </div> 

    @RenderScript() 
</body> 

有沒有辦法讓我這樣做?或者我將不得不單獨編寫每一頁?

謝謝!

回答

7

這裏是我做的,在您的每一個意見創建這樣一個部分,把你想要的任何HTML它

任何視圖:

@section Scripts 
{ 
    <script src="@Url.Content("~/Scripts/myscript.js")" type="text/javascript"></script> 
    <!-- Styles, more scripts, etc --> 
} 

然後回到你_Layout.cshtml您可以在任何想要的位置渲染該部分,第二個參數表示頁面是否需要腳本部分。

_Layout.cshtml:(任何你想要的)

<head> 
    @RenderSection("Scripts", false) 
</head>