15

我很抱歉提出这样一个基本问题,但在 ASP.NET 网站中,__VIEWSTATE 输入字段代表什么?

另外,有没有办法计算它的值(基于其他表单字段的值)?

编辑

我知道__VIEWSTATE,顾名思义,维护网页中表单字段值的值,但是我有兴趣知道这个状态(字符串)是如何生成的。如果我 base64_decode 任何 __VIEWSTATE 字符串,我看到的只是一堆神秘的 HTML。

有什么方法可以更好地理解编码的具体内容吗?我搜索了过去的问题,发现了一些可以像这个一样的工具,但不幸的是它似乎不起作用。

我问这个的原因是因为我可以访问一个 Web 服务 API,它为我提供了我需要使用的大部分值。但是,我还需要一个仅在表单的最后阶段可用的附加字段。我已经联系了网络服务提供商,但不幸的是,他们不会这么快更新他们的 API。我希望我可以使用 Web 服务数据预填充表单初始值,然后计算 __VIEWSTATE 以访问显示在表单最后阶段的最后一个字段,这将使整个过程更快。

不知道我是否说得足够清楚......

4

6 回答 6

8

Paul Wilson 有一篇很好的文章:ViewState: All You Want to Know

VIEWSTATE 可以使用LosFormatter类进行反序列化。

于 2009-08-29T02:59:45.890 回答
1

一个快速的谷歌搜索回答了这个问题:

http://msdn.microsoft.com/en-us/library/ms972976.aspx

第一句话:

简而言之,Microsoft® ASP.NET 视图状态是 ASP.NET 网页使用的一种技术,用于在回发期间保持对 Web 窗体状态的更改。

于 2009-08-29T02:09:04.970 回答
1

如果您真的想很好地理解它,请参阅Dave Reed 关于 ViewState 的文章

于 2009-08-29T02:49:16.127 回答
1

请查看http://forums.techarena.in/windows-software/1329157.htm上发布的 biter 脚本。

该脚本显示了如何设置和使用 __ViewState 和其他 .NET 变量。

该脚本无需通过浏览器即可登录到 .NET 站点并获取库存值。脚本以编程方式执行,而不是用户手动执行。

于 2010-08-20T18:33:00.913 回答
0

计算它的价值是什么意思?

假设它是文本形式的表单字段/值的压缩(实际上是 Base64 编码)对,它被序列化为服务器端对象供您使用。

于 2009-08-29T02:10:21.803 回答
0

在 Razor 中执行此操作的最简单方法是将其放在视图中:

@{
    throw new Exception();
} 
于 2017-12-18T01:40:33.847 回答