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 и много дочерних страниц!
Ответы
Ответ 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"
Выше, кажется, работает в любом случае.