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

Javascript Intellisense в Razor View Engine дочерние страницы

Я получаю доступ к файлам .js, указанным в моих "master" cshtml файлах, для доступа к файлам cshtml для "child".

У меня есть что-то подобное в главном файле, поэтому файлы .js всегда получают ссылку (и действительно, я получаю js intellisense в главном файле):

if (false)
{
     <script type="text/javascript" src="../scripts/jquery.js"></script>
}

Однако, когда я ссылаюсь на файл master.cshtml на странице "child" следующим образом:

@{
    Layout = "~/Views/Shared/master.cshtml";
}

Я не получаю javascript intellisense. Я действительно не хочу помещать теги script в начало каждой дочерней страницы, есть много тэгов script и много дочерних страниц!

4b9b3361

Ответ 1

Я тоже надеялся найти решение.

Лучший вариант, который я нашел, - всегда использовать внешний файл js. Создайте файл, похожий на Master.js в верхней части, используйте ссылочный путь:

/// <reference path="../../Scripts/jquery-1.4.4.js"/>

Тогда вы можете иметь intellisense. Вы должны по-прежнему включать файл jquery перед новым внешним файлом.

Ответ 2

Редактор Razor прямо сейчас не может определить, какие файлы script используются (это связано с тем, что страницы макета Razor задаются с помощью кода, а редактор не выполняет страницу просмотра). К сожалению, вам придется включать теги script, если вы хотите, чтобы JavaScript IntelliSense работал на ваших страницах просмотра.

Ответ 3

Итак, вы не теряете время, чтобы понять, почему трюк не работает, это может быть полезно:

Если вы используете относительный путь, это работает, только если путь указывает на одно и то же приложение. Абсолютный путь, по-видимому, работает во всех случаях:

reference path="../../Scripts/jquery-1.4.4.js"

Вышеописанное работает до тех пор, пока указанный файл script находится в одном приложении.

reference path="http://localhost/Scripts/jquery-1.4.4.js"

Выше, кажется, работает в любом случае.