2012-02-17 93 views
3

第一個MVC項目,只是好奇什麼是最好的管理方式。嵌入在MVC3剃鬚刀視圖中的腳本標記

我所有的意見我要創建包含以下

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

我寧願我的結束標記之前讓我的JS。我知道我明顯可以將它移動到我的layout.cshtml文件中,但我想有一種更優雅的MVC/Razor方式來做到這一點(特別是如果我有特定的視圖文件,我不想全局加載)。

我該如何做到這一點?

回答

5

我把我的全局腳本放在_Layout.cshtml中,然後爲我只想包含某些視圖的腳本定義一個section

E.g.在layout.cshtml

<body> 
... 
<script src="@Url.Content("~/Scripts/global1.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/global2.js")" type="text/javascript"></script> 
@RenderSection("FooterScripts", false) 
</body> 
</html> 

,然後在視圖中,如果我需要一個腳本,我不希望在全球範圍包括:

@section FooterScripts 
{ 
    <script src="@Url.Content("~/Scripts/local.js")" type="text/javascript"></script> 
} 
+0

@MikeEdenfield爲什麼我們需要指定* FALSE *呢?我的intellisense說有* @ RenderSection(string)*。這是新添加的東西嗎(正如我看到這個帖子很快就要4年了)? – 2016-01-02 17:14:07

+0

這裏的false參數表示該部分不是必需的。它在視圖中沒有這樣命名的部分,它將被忽略。沒有布爾參數的重載的行爲與您傳遞true的行爲相同 – 2016-01-02 17:35:28