我很抱歉可能会提出这样一个基本问题,但在ASP.NET网站上__VIEWSTATE输入字段代表什么?
另外,有没有办法计算它的值(基于其他表单字段的值)?
我理解__VIEWSTATE,顾名思义,维护网页中表单字段值的值,但我感兴趣的是如何生成此状态(字符串)。如果我base64_decode任何__VIEWSTATE字符串,我看到的是一堆神秘的HTML。
有没有办法更好地了解究竟是什么编码?我已经搜索了过去的问题,并且我找到了一些可以执行此操作的工具like this one,但不幸的是它似乎没有用。
我问这个的原因是因为我访问了一个Web服务API,它提供了我需要使用的大部分值。但是,我还需要一个仅在表单的最后一个阶段可用的附加字段。我已经联系了网络服务提供商但不幸的是他们不会很快更新他们的API。我希望我可以使用Web服务数据预填充表单初始值,然后计算__VIEWSTATE以访问表单最后一个阶段显示的最后一个字段,这将使整个过程更快。
不确定我是否已经说清楚了......
答案 0 :(得分:8)
VIEWSTATE可以使用LosFormatter类进行反序列化。
答案 1 :(得分:2)
如果您真的想要了解它,请参阅Dave Reed's article about ViewState。
答案 2 :(得分:1)
快速Google搜索回答了这个问题:
http://msdn.microsoft.com/en-us/library/ms972976.aspx
第一句:
Microsoft®ASP.NET视图状态,在 简而言之,是一种技术 ASP.NET网页要保留更改 Web表单的状态 回传。
答案 3 :(得分:1)
请查看http://forums.techarena.in/windows-software/1329157.htm上发布的biter脚本。
该脚本显示了如何设置和使用__ViewState和其他.NET变量。
该脚本登录到.NET站点,并获取库存值,而无需通过浏览器。该脚本不是手动执行,而是以编程方式执行。
答案 4 :(得分:0)
计算它的价值是什么意思?
假设它是一个压缩的(实际上是Base64编码的)文本形式的表单字段/值对,它被序列化到服务器端对象中供您使用。
答案 5 :(得分:0)
在Razor中执行此操作的最简单方法是将其放在视图上:
@{
throw new Exception();
}