2013-02-21 2 views
0

Я хотел бы напечатать json-литерал внутри страницы cshtml (бритва), я хочу заполнить json-объект в javascript и быть готовым, когда загружается страница, и не дожидаться загрузки страницы а затем выполните вызов ajax.Написание JSON-литерала по методу

То, что я пытаюсь сделать что-то вроде

/*Some view*/ 

@{ 
    ViewBag.Title = "Some title";   

} 
<script> 
    _SERVER_["someVar"] ="@SomeClass.Models.MovimientosMotivosModel.getMyarray()"; 
</script> 

Проблема в том, когда я пытаюсь сериализации JSON все двойные кавычки получить замену быть HTML кодирование и мой JSON стал беспорядок ... как может это достичь?

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Хорошо ... без проблем спасибо – ncubica

+0

Mmm ok можно дублировать, но я не нашел этот ответ, глядя на google, либо используя литерал или кодировку, как поиск слов. – ncubica

ответ

3

Используйте Json.Encode метод:

<script> 
    _SERVER_["someVar"] = @Html.Raw(Json.Encode(SomeClass.Models.MovimientosMotivosModel.getMyarray())); 
</script> 

Это будет гарантировать, что значение на стороне сервера, правильно закодирован в JavaScript Object, который вы могли бы получить доступ на клиенте. Метод @Html.Raw, с другой стороны, не будет кодировать HTML в качестве стандарта @ Функция Razor.

+0

Отличный человек благодаря работе !!! – ncubica

+1

Рад, что я мог помочь. Это самый безопасный подход к использованию, когда вы хотите передать некоторые серверные объекты (независимо от их сложности) с javascript. –

Смежные вопросы