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

Html 将模型序列化为查询字符串,html,model-view-controller,models,Html,Model View Controller,Models,是否可以将模型对象序列化为查询字符串? 我不知道这是否可能,但如果不可能,最好的方法是什么 <% Html.RenderAction("Grid", "Grid", new { gridModel= ViewData["model"]}); %> 该模型包含CA20属性,单独使用这些属性创建查询字符串会让处理起来很痛苦,而且看起来非常难看。那么我有什么选择呢?要直接回答,可以使用类似JSON.NET的东西将其序列化为ASCII,然后对其进行base64编码 然而,在查询字符串中可以

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

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

该模型包含CA20属性,单独使用这些属性创建查询字符串会让处理起来很痛苦,而且看起来非常难看。那么我有什么选择呢?

要直接回答,可以使用类似JSON.NET的东西将其序列化为ASCII,然后对其进行base64编码

然而,在查询字符串中可以包含多少数据,这是非常实际的限制,我不太愿意这样做

我能想到的最接近的事情是创建一个GUID,将该GUID用作在会话中存储对象的键,然后将RenderAction传递给GUID。该操作会将对象从会话中拉出,然后将其从会话中移除

快速伪代码甚至不能保证编译,更不用说工作了

var _requestKey = Guid.NewGuid();
Session[requestKey] = gridModel;
另一方面:

var gridModel = Session[requestKey] as GridModelType;
Session[requestKey] = null;

为了直接回答,您可以使用类似JSON.NET的东西将其序列化为ASCII,然后对其进行base64编码

然而,在查询字符串中可以包含多少数据,这是非常实际的限制,我不太愿意这样做

我能想到的最接近的事情是创建一个GUID,将该GUID用作在会话中存储对象的键,然后将RenderAction传递给GUID。该操作会将对象从会话中拉出,然后将其从会话中移除

快速伪代码甚至不能保证编译,更不用说工作了

var _requestKey = Guid.NewGuid();
Session[requestKey] = gridModel;
另一方面:

var gridModel = Session[requestKey] as GridModelType;
Session[requestKey] = null;

我最终使用表单来完成这个任务。虽然没有我想要的那么漂亮,那么好,但据我所知,这是我能做到的唯一好方法

我最终使用表单来完成此操作。虽然没有我想要的那么漂亮,那么好,但据我所知,这是我能做到的唯一好方法

您可以将它序列化为json,然后在操作中反序列化它。但我建议只向操作发送一个标识符,这样您就可以获得操作中的所有数据。或者改用Html.RenderPartial。这种做法违背了renderaction助手的目的,并且在某种程度上与mvc模式背道而驰。但我建议只向操作发送一个标识符,这样您就可以获得操作中的所有数据。或者改用Html.RenderPartial。这种方法违背了renderaction助手的目的,并且在某种程度上违背了mvc模式。我明白你的意思。我最终解决了这个问题,没有序列化模型,而是手动输入所需的参数。不漂亮,但效果很好。谢谢你的回答。酷。我明白你的意思。我最终解决了这个问题,没有序列化模型,而是手动输入所需的参数。不漂亮,但效果很好。谢谢你的回答。