将模型序列化为查询字符串

时间:2010-04-13 10:57:27

标签: html model-view-controller models

是否可以将模型对象序列化为查询字符串? 我不知道这是否可能,但如果没有,最好的方法是什么?

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

模型包含大约20个属性,并且单独使用它们创建查询字符串会使它变得很麻烦并且看起来非常难看。那么我有什么替代方案呢?

2 个答案:

答案 0 :(得分:0)

要直接回答,您可以使用类似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;

答案 1 :(得分:0)

我最终使用Form for this。并不像我想的那样漂亮和漂亮,但据我所知,我能做到的唯一好方法。