Visual Studio Intellisense для JavaScript при создании из JavaScriptSerializer - PullRequest
2 голосов
/ 27 августа 2011

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

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

Код позади

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

ASPX page

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

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

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

0 голосов
/ 17 мая 2012

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

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

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

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

...