118

我想包含一个 javascript 参考,例如:

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

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

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

4

3 回答 3

192

根据您想要实现它的方式(如果您需要脚本的特定位置),您可以@section在您的内部实现一个,_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>声明放在视图中。

于 2013-01-11T18:52:57.273 回答
13

如果您使用的是 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>
于 2015-01-21T07:02:45.407 回答
6

您可以像我们在 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>
于 2017-06-19T17:37:55.867 回答