如果我有一个简单的数据来存储(例如一个整数或字符串),我可以选择将它存储在ViewState中,或者使用一个HiddenField控件。
我为什么要选择一个而不是另一个?
ViewState
HiddenField
还有其他的利弊吗?
发布于 2009-01-08 13:27:59
不完全是这样,ViewState实际上存储在一个隐藏字段中,所以唯一真正的区别是编码。
除非您需要使用JavaScript操作该值,或者希望在此页面上完全关闭ViewState,否则我将使用ViewState。主要是因为有第三方工具(就像这个),它们能够理解ViewState,并且不会理解您的自定义隐藏字段。
发布于 2009-01-08 13:56:25
从可维护性的角度来看,我会使用ViewState。需要编写的代码较少,这可以归结为软件中的故障点更少。这也意味着,任何后续开发人员都可以轻松地维护您的解决方案。
如果您对此并不完全满意,那么在作为外观的页面上编写一个属性访问器,从ViewState中检索值。稍后,如果您感到必须将其转换为隐藏字段,则访问器可以为其余代码处理该开关。只是要确保你记录了你这么做的理由。
发布于 2011-01-17 20:39:27
Viewstate仅适用于您正在或回发的页面。使用隐藏字段,您可以使用page对象的PreviousPage方法访问导航到的下一页上的数据(以及其他数据),如下所示:
string term = ((TextBox)Page.PreviousPage.FindControl("txtSearchTerm")).Text;https://stackoverflow.com/questions/424151
复制相似问题