当前位置:  开发笔记 > 后端 > 正文

ASP.NET MVC - 有没有办法模拟ViewState?

如何解决《ASP.NETMVC-有没有办法模拟ViewState?》经验,为你挑选了1个好方法。

我有以下情况......在某个视图中,用户必须选择初始小时,最后一小时和工作日.但是,我无法将此信息保存到DB中,因为我需要保存整个页面,我需要主表的主键,但这不是重点.

因此,虽然我没有将这些数据保存到DB,但我正在保存到Session.我被告知保存到cookie,但似乎cookie有大小限制.所以,我正在保存到一个会话.

Buuuut,我还被告知我可以将这些信息(小时和工作日)保存到用户页面,模拟ASP.NET ViewState ...

有谁知道如何做到这一点??有谁知道如何使用cookie或Session暂时保存这些数据?

谢谢!!



1> Mehrdad Afsh..:

隐藏的输入字段无济于事?

<%= Html.Hidden(...) %>

更新(将对象序列化为base64):

var formatter = new BinaryFormatter();
var stream = new MemoryStream();
formatter.Serialize(stream, myObject); // myObject should be serializable.
string result = Convert.ToBase64String(stream.ToArray());

当你想要取回它时:

var formatter = new BinaryFormatter();
var stream = new MemoryStream(Convert.FromBase64String(hiddenFieldValue));
var myObject = (MyObjectType)formatter.Deserialize(stream);

确保在使用时验证存储在字段中的数据,因为客户端可能会更改它.ViewState自动处理这个.

附注: ASP.NET使用LosFormatter而不是BinaryFormatter序列化,ViewState因为它更有效或基于ASCII的序列化.您可能也想考虑这一点.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有