У меня есть страница, на которой я реализовал ajax-вызов контроллера, который возвращает результаты поиска, которые упакованы в JsonNetResult.
У меня много javascript для работы с возвращаемым пакетом, итерации по каждому элементу в наборе результатов и вывода на страницу.
Теперь, однако, мне нужно реализовать использованиеиз этих же методов для одного элемента, который будет известен при загрузке страницы.Я хотел бы просто передать эту информацию в словарь View в ViewData.
Однако я не знаю, как использовать Json.Net таким образом.
Как загрузить объект Json.Net в собственную переменную json при загрузке страницы, если предположить, что объект был вставлен в ViewData ["DeepLinkedMessage"]?
Я начал спускатьсяПуть этого:
var thisMessage = (from userMessageProduct .... more linq2sql stuff...);
bool success = (thisMessage.Count() == 0) ? false : true;
var returnPackage = new { success = success, results = thisMessage };
JavaScriptSerializer serializer = new JavaScriptSerializer();
ViewData["DeepLinkedMessage"] = serializer.Serialize(returnPackage);
Работало просто отлично.Но я быстро заметил, что мне придется решать проблемы с форматированием даты, которые я уже решил, когда настраивал вызов ajax, который возвращал JsonNetResult.Я хочу использовать те же методы, которые я использую сейчас.
Итак, я начал по этому пути:
JsonNetResult jsonNetResult = new JsonNetResult();
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter());
jsonNetResult.Data = returnPackage;
ViewData["DeepLinkedMessage"] = jsonNetResult.ToString();
Затем, на мой взгляд:
<script type="text/javascript">
deepLinkedMessageId = '<%=ViewData["DeepLinkMessageId"] %>';
deepLinkedMessageRaw = '<%=ViewData["DeepLinkedMessage"]%>';
</script>
Но это возвращает это:
<script type="text/javascript">
deepLinkedMessageId = '1';
deepLinkedMessageRaw = 'WebUI.Controllers.JsonNetResult';
</script>
Пока я ищу что-то вроде этого:
<script type="text/javascript">
deepLinkedMessageId = '1';
deepLinkedMessageRaw = '{"success":true,"results":[{"UserId":1,"InternalId":"1356935180","FirstName":"Scott","LastName":"Roberson","MessageId":1,"MessageText":"i just love your product!!!", "MessageCreateTime":"\/Date(1295289549930)\/","ProductId":5,"Flavor":"Almonds","ActivePixel":false,"ActiveClass":null,"TileNumber":0}]}';
</script>
Помогите с помощью Json.Net для этого?
Спасибо.