Как добавить script src внутри представления при использовании макета
Я хочу включить ссылку на javascript, например:
<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script>
Если у меня есть Razor View, то какой способ включить это, не добавляя его в макет (мне нужно только его в одном конкретном представлении, а не во всех)
В aspx мы могли бы использовать держатели содержимого. Я нашел более старые примеры, используя aspx в mvc, но не Razor.
Ответы
Ответ 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>