Visual Studio Intellisense для JavaScript при создании из JavaScriptSerializer

Как правильно получить JavaScript Intellisense в Visual Studio 2010 при создании объекта на стороне клиента с JavaScriptSerializer?

Например, у меня есть класс с именем Record с несколькими свойствами; Я создаю коллекцию Records, а затем сериализую их с помощью JavaScriptSerializer.

Отложенный код

public string JsonRecords
{
    get
    {
        var js = new System.Web.Script.Serialization.JavaScriptSerializer();
        return js.Serialize( Records );
    }
}

Страница ASPX

<script>
  // mocks the Record object
  var records = [{ "Date": "", "Latitude": 0, "Longitude": 0 }];

  // sets the Record object
  records = <%= JsonRecords %>;
</script>

Когда я предварительно заполняю переменную записей JS для имитации класса Records, я получаю полную поддержку intellisense в Visual Studio.

Это работает, но кажется грязным. Есть ли более подходящий метод? Или это обычная практика?


person Metro Smurf    schedule 26.08.2011    source источник


Ответы (2)


Как правильно получить JavaScript Intellisense в Visual Studio 2010 при создании объекта с помощью JavaScriptSerializer?

Подождите, пока появится VSNext или какой-нибудь патч, который включит такой сценарий. В настоящее время Intellisense в сценариях при смешивании javascript с серверным кодом не поддерживается.

person Darin Dimitrov    schedule 29.08.2011

Intellisense Javascript создается путем синтаксического анализа самого скрипта, поэтому, если вы не определили свойства, встроенные в скрипт (или связанный скрипт), вы не увидите intellisense.

Если есть структуры, которые вы хотели бы использовать с intellisense, но в конечном итоге собирались предоставить с помощью динамической конструкции, вы могли бы заглушить их в другом файле .js, а затем включить тег ссылки в свой файл следующим образом:

/// <reference path="../xxx.js" />

Это будет рассматриваться как комментарий в клиенте, но Visual Studio уловит его, когда вы работаете с кодом. Минификаторы / углификаторы удаляют эти комментарии до того, как они попадут в рабочую среду, поэтому они не повлияют на производительность.

person ahin4114    schedule 17.05.2012