__VIEWSTATE包含什么?

问题描述 投票:14回答:6

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

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

EDIT

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

有没有办法更好地了解究竟是什么编码?我搜索过去的问题,我发现了一些可以做这个like this one的工具,但不幸的是它似乎没有用。

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

不确定我是否让自己清楚了......

asp.net forms viewstate hidden-field
6个回答
8
投票

保罗威尔逊有一篇非常好的文章:ViewState: All You Wanted to Know

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


2
投票

如果你真的想要了解它,请参阅Dave Reed's article about ViewState


1
投票

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

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

第一句话:

简而言之,Microsoft®ASP.NET视图状态是ASP.NET网页用于跨回发持久更改Web窗体状态的技术。


1
投票

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

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

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


0
投票

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

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


0
投票

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

@{
    throw new Exception();
} 
© www.soinside.com 2019 - 2024. All rights reserved.