Почему intellisense не работает на моем объекте ko?

#javascript #visual-studio-2010 #asp.net-mvc-3 #knockout.js

#javascript #visual-studio-2010 #asp.net-mvc-3 #knockout.js

Вопрос:

Я пытаюсь knockout.js в тестовом проекте MVC3. У меня есть следующая структура:

 Project Root
  Scripts
    jquery-1.4.4.js
    knockout-1.2.0.debug.js
    etc...
  Views
    Home
      Index.cshtml
    Shared
      _Layout.cshtml
  HTMLPage1.htm
  

В моем файле _Layout.cshtml у меня есть следующие блоки скрипта:

 <script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script>
<script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script>
  

В моем файле Index.cshtml я пытаюсь использовать объект ko в моем блоке скрипта. Он работает нормально, но в VS designer я не получаю никакого intellisense от самого объекта ko.

Если я открываю обычный HTML-файл на уровне корневого проекта и помещаю туда блок сценария, я получаю intellisense для объекта ko.

Что у меня не так? Почему intellisense не может увидеть объект ko в моем файле .cshtml?

Я отмечаю, что в отладочном выводе в VS я получаю следующее:

Сообщение Javascript Intellisense: JSIntellisense: Internal / window (18:4): Ожидаемая функция
Сообщение Javascript Intellisense: JSIntellisense: Internal / window(19:8): ‘ko’ не определено
Сообщение Javascript Intellisense: JSIntellisense: Internal / window (18:4): Ожидаемая функция
Сообщение Javascript Intellisense: JSIntellisense: Internal / window (19:8): ‘ko’ не определено
Javascript Сообщение Intellisense: JSIntellisense: Internal / window (18: 4): Ожидаемая функция
Сообщение Javascript Intellisense: JSIntellisense:Internal / window(19:8): ‘ko’ не определено
Сообщение Javascript Intellisense: JSIntellisense: Internal / window(18:4): Ожидаемая функция
Сообщение Javascript Intellisense: JSIntellisense: Internal / window (19: 8): ‘ko’ не определено
и т.д.

Ответ №1:

А, понял это. Мне нужно, чтобы блоки моего скрипта ссылались на мои файлы .js в реальном файле .cshtml.

Как в:

 @if (false)
{
    <script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery-ui.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script>
    <script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script>
}
  

@if (false) означает, что они не включаются во время выполнения (и поэтому используйте скрипты, включаемые из моего файла master .cshtml).