如何在使用Layout时在视图中添加脚本src

我想包括一个JavaScript的参考,如:

<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script> 

如果我有一个Razor视图,什么是正确的方式来包含这个,而不必将其添加到布局(我只需要在一个特定的视图,而不是所有的)

在aspx中,我们可以使用内容占位符..我发现在mvc中使用aspx的旧例子,但不是剃刀视图..

根据你想实现它的方式(如果你想要一个特定的位置脚本),你可以在你的_Layout实现一个@section ,这将允许你从视图本身添加额外的脚本,同时仍然保留结构。 例如

_布局

 <!DOCTYPE html> <html> <head> <title>...</title> <script src="@Url.Content("~/Scripts/jquery.min.js")"></script> @RenderSection("Scripts",false/*required*/) </head> <body> @RenderBody() </body> </html> 

视图

 @model MyNamespace.ViewModels.WhateverViewModel @section Scripts { <script src="@Url.Content("~/Scripts/jqueryFoo.js")"></script> } 

否则,你有什么好的。 如果您不介意与输出的视图“内联”,则可以将<script>声明放在视图中。

如果您使用Razor视图引擎,则编辑_Layout.cshtml文件。 将脚注中存在的@ Scripts.Render(“〜/ bundles / jquery”)移动到标题部分,并根据需要编写javascript / jquery代码:

 @Scripts.Render("~/bundles/jquery") <script type="text/javascript"> $(document).ready(function () { var divLength = $('div').length; alert(divLength); }); </script> 

你可以添加脚本标签,就像我们在asp.net中使用的一样,同时做如下的客户端validation。

 @{ ViewBag.Title = "Index"; } <h2>Index</h2> <script type="text/javascript" src="~/Scripts/jquery-3.1.1.min.js"></script> <script type="text/javascript"> $(function () { //Your code }); </script>