Как инициализировать переменную JavaScript с помощью Json String в Asp.net MVC? - PullRequest
0 голосов
/ 24 августа 2010

У меня есть следующий метод действия.

public ActionResult Action()
{
   var model = new SampleViewModel();
   model.JsonString = ReadJsonStringFromSomewhere();
   return ViewResult(model);
}

На мой взгляд, у меня есть следующий метод для инициализации переменной javascript.

<script type="text/javascript">

    var jsObject = eval("(" + <%= Model.JsonString %> + ")");
    alert(jsObject); 

</script> 

'jsObject', который я получаю, не определен. Что здесь не так. Также это лучший способ инициализировать переменную javascript со сложной строкой json?

Ответы [ 3 ]

3 голосов
/ 24 августа 2010

JSON - это буквальный JavaScript. Вам не нужно eval вообще. Будет работать следующее:

<script type="text/javascript">

    var jsObject = <%= Model.JsonString %>;
    alert(jsObject); 

</script> 

Тем не менее, ваша eval версия все еще должна работать, хотя и медленнее. Вы не показываете свой JSON, но он может быть недействительным.

1 голос
/ 24 августа 2010

Я думаю, что смотреть на визуализированный HTML и FireBug может быть вашим лучшим другом.Фрагмент кода, предоставленный Крейгом Стунцем, выглядит хорошо, поэтому, если он не работает, я думаю, что в испущенном JSON что-то не так.

1 голос
/ 24 августа 2010

попробуйте

<script type="text/javascript">

var jsObject = '<%= Model.JsonString %>';
alert(jsObject); 

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