ASP.NET MVC 3 Бритва: Включіть файл JavaScript в головний тег


230

Я намагаюся розібратися у правильному синтаксисі Razor, щоб отримати файл JavaScript для певного * .cshtml, який міститиме головний тег, а також усі інші файли, що визначені у _Layout.cshtml.


7
Слід також розглянути можливість розміщення js внизу сторінки, а не в розділі заголовка.
Маттіас Якобссон

Єдине питання, який я знайшов у зразковому коді, це те, що @section "JavaScript" не потрібно вкладати в лапки.
Стівен Паттен

2
І ще одне: якщо це тег JavaScript, будьте обережні у використанні, мені потрібно було використовувати тег END для елемента скрипта, щоб змусити це правильно працювати. <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </script>;
Стівен Паттен

@Mattias Jakobsson - Не завжди. Це залежить від конкретного випадку.
Димський

@Dimskiy, якщо ви дозволите мені розбирати слова і педант, ви дійсно повинні ВИМОЖИТИ, поклавши js на дно, незалежно від того, розміщуєте ви його чи ні.
MrBoJangles

Відповіді:


398

Ви можете використовувати названі секції .

_Layout.cshtml

<head>
    <script type="text/javascript" src="@Url.Content("/Scripts/jquery-1.6.2.min.js")"></script>
    @RenderSection("JavaScript", required: false)
</head>

_SomeView.cshtml

@section JavaScript
{
   <script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")"></script>
   <script type="text/javascript" src="@Url.Content("/Scripts/AnotherScript.js")"></script>
}

1
Так, я дивився на WebPageBase і здогадувався, що це може бути відповіддю, але не знав належного синтаксису. Чи можете ви порекомендувати посібник для MVC 3? З повагою ..
Стівен Паттен

8
Га! Я ХОЧУТЬ, щоб було посилання на MVC 3 та синтаксис Razor. Я отримав вище сказане з блогу Гу. Найкраща посилання на MVC 3 - це, мабуть, нотатки до випуску.
RPM1984

Ой, і гарний підказок, який слід закрити для <script>тегу - не знав цього (ще не пробував названих розділів із JS). тепер я (та інші) буду знати
RPM1984

4
FYI: Javascript слід надавати прямо перед </body>тегом, а не в тезі head. Це так, що це не перешкоджало б паралельному завантаженню браузером. Дивіться developer.yahoo.com/performance/rules.html
Пітер

4
@ Peeter - так, я знаю - але я просто звертався до відповіді (JS у головному тезі).
RPM1984
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.