Подтвердить что ты не робот

Как добавить script src внутри представления при использовании макета

Я хочу включить ссылку на javascript, например:

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

Если у меня есть Razor View, то какой способ включить это, не добавляя его в макет (мне нужно только его в одном конкретном представлении, а не во всех)

В aspx мы могли бы использовать держатели содержимого. Я нашел более старые примеры, используя aspx в mvc, но не Razor.

4b9b3361

Ответ 1

В зависимости от того, как вы хотите его реализовать (если бы было определенное местоположение, в котором вы хотели использовать скрипты), вы могли бы реализовать @section в своем _Layout, который позволит вам добавлять дополнительные сценарии из самого представления, сохраняя при этом состав. например.

_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> в представление.

Ответ 2

Если вы используете механизм просмотра 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>

Ответ 3

Вы можете добавить теги script так же, как мы используем в 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>