有关Scripts和script-tag部分的两个语句有什么区别?不是脚本中我不感兴趣的内容。
@section Scripts {
@Scripts.Render(Bundles.Scripts.Validation)
}
VS
<script src="@Url.Content("~/Scripts/Validation.js")"></script>
答案 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)
然后你被搞砸了( - :