我想了解viewsource中的viewsate [“ x”]和__viewstate之间的区别



在视图源页面中,隐藏控件中存在视图状态,例如:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="dO3F9exemRdHoXxGHr"/>


但是在C#中我可以创建如下的viewstate:

viewstate["x"]="Hi";


那么区别是什么呢???

以及字符串“ Hi”将其保存在哪里?在这个隐藏的地方?

最佳答案

呈现页面时,它会将其视图状态序列化为base-64
  使用LosFormatter类编码的字符串,并(默认情况下)存储它
  在隐藏的表单字段中。回发时,隐藏的表单字段为
  检索并反序列化回视图状态的对象
  表示,然后用于还原状态
  控件层次结构中的控件。


这意味着是的,它保存在此hidden field中,但它是encoded。阅读MSDN article以获得更多信息。引用来自6.PARSING THE VIEW STATE。

如果您有兴趣,可以解析ViewState并查看其“实际值”。经过研究,我发现这个Website后,您可以搜索视图状态解析器

关于c# - View 源中的viewsate [“x”]和__viewstate有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27871585/

10-09 06:42