ASP.NET генерирует объект Javascript - PullRequest
0 голосов
/ 16 марта 2012

Мне нужно сгенерировать объект JSON из сервера, содержащего данные для кэширования на клиенте.Я поместил следующее:

<script src='Path to js file on server" />

На сервере я сгенерировал свои данные json и поместил их в файл JS.

Я вижу сгенерированный объект JSON на стороне клиентаas:

var jsonData = [{}, {}];

Однако, когда я пытаюсь получить доступ к объекту jsonData, он говорит: undefined!

Есть ли другой способ генерировать действительный JavaScript на стороне сервера?*

Спасибо


Это код на стороне сервера:

var items = List<myObj>();

string json = JsonConvert.SerializeObject(items, Formatting.Indented);

StringBuilder sb = new StringBuilder();
sb.AppendLine();
sb.AppendFormat("    var jsonData = {0};", json);

var fileName = Request.PhysicalApplicationPath + "Scripts/Data.js";
System.IO.File.WriteAllText(fileName, sb.ToString());

Что касается стороны клиента:

<script src='@Url.Content("~/Scripts/Data.js")' type="text/javascript"></script>

Я пытался использовать этот код на клиенте:

alert(jsonData[0].Id);

Он говорит, что jsonData не определен!

С уважением

1 Ответ

1 голос
/ 16 марта 2012

ASP часть в порядке, проблема, казалось, лежала в плоскости видимости переменной javascript. Возможные проблемы:

  • Вы просто не включаете этот js-файл.
  • Вы пытаетесь получить доступ к переменной до ее инициализации;
  • Переменная не видна на месте, вы пытаетесь получить к ней доступ.
  • Вы не точны в своем вопросе и обращаетесь не к jsonData, а к чему-то вроде jsonData[0].property

и т.д.

UPD: хорошо, первые два варианта исключены. Где вы пытаетесь получить доступ к этой переменной? Пожалуйста, покажите нам часть кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...