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


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

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

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

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

3 71

3 ответа:

в зависимости от того, как вы хотите его реализовать (если есть определенное место, где вы хотите скрипты), вы можете реализовать @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>

View

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

в противном случае, то, что у вас есть, прекрасно. Если вы не возражаете, чтобы он был "встроенным" с видом, который был выведен, вы можете разместить <script> заявление в вид.

Если вы используете Razor view engine, отредактируйте _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 при выполнении проверки на стороне клиента, как показано ниже.

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