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