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

时间:2013-01-11 18:47:39

标签: asp.net-mvc razor

我想要包含一个javascript引用,如:

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

如果我有一个Razor View,那么在不必将其添加到Layout的情况下包含它的正确方法是什么(我只需要在一个特定的视图中,而不是所有的视图中)

在aspx中,我们可以使用内容占位符..我发现在mvc中使用aspx而不是Razor视图的旧示例..

3 个答案:

答案 0 :(得分:148)

根据您希望如何实现它(如果您希望脚本有特定位置),您可以在@section中实现_Layout,这样您就可以从视图本身添加其他脚本,同时仍保留结构。 e.g。

_layout

<!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>声明。

答案 1 :(得分:11)

如果您使用的是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>

答案 2 :(得分:0)

您可以在执行客户端验证时添加脚本标记,例如我们在asp.net中的使用方式。

@{
    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>