2016-06-06 3 views
0

У меня был объект mvc в качестве моей модели.MVC - модель для объекта json

Мне нужно, чтобы stringfiy моя модель как тип объекта json - и затем используйте его в js, как мне нравится.

я в настоящее время делает что-то вроде этого

<script type="text/javascript"> 

    $(function() { 

     var jsonData2 = '@Html.Raw(Json.Encode(Model))'; 
     showBeginDate(jsonData2); 
    }); 
</script> 

Но когда я пытаюсь Асесс свойство JSon для Exemple как jsonData2.BeginDate я получаю не определено. jsonData2 - объект json - почему я могу «прочитать» его?

С уважением

+0

Пробовали ли вы JSON.parse ('@ Html.Raw (Json.Encode (модель))'); – riteshmeher

+0

Его просто 'var jsonData2 = @ Html.Raw (Json.Encode (Model));' (без кавычек - добавлением кавычек, которые вы сделали его строкой, и вам тогда нужно будет разобрать его обратно в JSON) –

ответ

1

предложение @riteshmeher корректна

var text = '@Html.Raw(Json.Encode(Model))';   
var obj = JSON.parse(text); 

Я не знаю, модель таким образом, я создал простую модель с 2-мя атрибутами: идентификатор и имя. В случае, когда модель представляет собой список, вы можете прочитать:

// Access to object in position 1 
var result = obj[0].Id + " - " + obj[0].Name; 

В другом случае, право доступа к собственности.

var result = obj.Id + " - " + obj.Name; 

Для получения дополнительной информации, проверить этот пост:

http://www.w3schools.com/js/js_properties.asp

http://www.w3schools.com/json/tryit.asp?filename=tryjson_parse

UPDATE

как сказал @Stephen Muecke, лучше это:

var obj = @Html.Raw(Json.Encode(Model));   
var result = obj[0].Id + " - " + obj[0].Name; 

поблагодарить @Craig для коррекции

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