部分脚本与asp.net mvc中的script-tag

时间:2015-04-29 07:46:37

标签: asp.net-mvc

有关Scripts和script-tag部分的两个语句有什么区别?不是脚本中我不感兴趣的内容。

@section Scripts {
    @Scripts.Render(Bundles.Scripts.Validation)
}

VS

<script src="@Url.Content("~/Scripts/Validation.js")"></script>

2 个答案:

答案 0 :(得分:3)

第一个会在您的布局中呈现<script>标记{。}}。

如果您不必为所有网页添加脚本,则首选

同样@RenderSection("Scripts")将缩小和捆绑您的脚本。通常在@Scripts.Render 标记的末尾使用,以便在呈现DOM之后,Views可以获取脚本。

第二个仍然是您使用body标记的位置。

如果您在<script>中使用该脚本,该脚本将包含在所有页面中(例如Layout)。

让我们举个例子

jQuery

此处,如果脚本使用 <!-- HTML in Layout, before Scrip --> @RenderBody() <script src="@Url.Content("~/Scripts/jquery.min.js")"></script> @RenderSection("Scripts") <!-- HTML after Script --> ,您希望将其添加到jQuery,因为section 之前包含<{}}。

如果您在视图中加入了jQuery,则会出现错误section,因为<script> 之前包含

答案 1 :(得分:2)

您可能希望在_layout.cshtml文件中定义特定内容的部分。通常认为样式属于<head>,脚本属于</body>之前。您的里程可能会有所不同。

如果你只输出<script>,它将包含所有内容,而不是你想要的内容。 如果视图中的脚本依赖于某些东西(jquery),那么你的布局中就有

@renderBody()    
<script src=jquery.js></script>
@renderSection("scripts",required:false)
然后你被搞砸了( - :