Сериализация модели в строку запроса - PullRequest
2 голосов
/ 13 апреля 2010

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

<% Html.RenderAction("Grid", "Grid", new { gridModel= ViewData["model"]}); %>

Модель содержит около 20 свойств, и создание строки запроса с ними по отдельности затруднит работу и будет выглядеть очень уродливо. так какие у меня есть альтернативы?

Ответы [ 2 ]

0 голосов
/ 04 августа 2010

Я использовал форму для этого.Было не так красиво и красиво, как хотелось, но, насколько я понимаю, единственный хороший способ это сделать.

0 голосов
/ 29 апреля 2010

Чтобы ответить напрямую, вы можете использовать что-то вроде JSON.NET, чтобы сериализовать его в ASCII, а затем закодировать в base64.

Однако существуют очень реальные ограничения на количество данных, которые вы можете включить в строку запроса, и я не решусь это сделать.

Самое близкое, что я могу придумать, это создать GUID, использовать этот GUID в качестве ключа для сохранения объекта в Session, а затем передать RenderAction GUID. Это действие вытянет объект из сеанса, а затем удалит его из сеанса.

Быстрый псевдокод (не гарантируется даже компиляция, намного меньше работы)

var _requestKey = Guid.NewGuid();
Session[requestKey] = gridModel;

Тогда на другой стороне:

var gridModel = Session[requestKey] as GridModelType;
Session[requestKey] = null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...