首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewState或HiddenField

ViewState或HiddenField
EN

Stack Overflow用户
提问于 2009-01-08 13:05:30
回答 5查看 9K关注 0票数 7

如果我有一个简单的数据来存储(例如一个整数或字符串),我可以选择将它存储在ViewState中,或者使用一个HiddenField控件。

我为什么要选择一个而不是另一个?

ViewState

  • 用户很难解码(认为不是不可能的),这可能是可取的

HiddenField

  • 值可用于JavaScript

还有其他的利弊吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-08 13:27:59

不完全是这样,ViewState实际上存储在一个隐藏字段中,所以唯一真正的区别是编码。

除非您需要使用JavaScript操作该值,或者希望在此页面上完全关闭ViewState,否则我将使用ViewState。主要是因为有第三方工具(就像这个),它们能够理解ViewState,并且不会理解您的自定义隐藏字段。

票数 6
EN

Stack Overflow用户

发布于 2009-01-08 13:56:25

从可维护性的角度来看,我会使用ViewState。需要编写的代码较少,这可以归结为软件中的故障点更少。这也意味着,任何后续开发人员都可以轻松地维护您的解决方案。

如果您对此并不完全满意,那么在作为外观的页面上编写一个属性访问器,从ViewState中检索值。稍后,如果您感到必须将其转换为隐藏字段,则访问器可以为其余代码处理该开关。只是要确保你记录了你这么做的理由。

票数 3
EN

Stack Overflow用户

发布于 2011-01-17 20:39:27

Viewstate仅适用于您正在或回发的页面。使用隐藏字段,您可以使用page对象的PreviousPage方法访问导航到的下一页上的数据(以及其他数据),如下所示:

代码语言:javascript
复制
string term = ((TextBox)Page.PreviousPage.FindControl("txtSearchTerm")).Text;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/424151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档