有什么快速的方法来查明ASP.NET控件属性是否由viewstate或普通字段支持?

时间:2009-05-13 13:48:28

标签: c# .net asp.net viewstate

在我的所有Page_Load()事件中,我必须做

if(!IsPostBack)
{
  //code runs on initial get
  //Set properties backed by viewstate
}
else
{
  //Code runs on each get and post
  //Set properties backed by ordinary fields
}

有没有快速的方法来确定这个反射器的缺点,阅读文档或创建测试页?

采用viewstate实际上并不存在的约定是否更好,因为如果不对可能需要在大量业务应用程序中设置的所有可能的1000个属性进行研究,您不知道它是否存在?

1 个答案:

答案 0 :(得分:1)

这似乎更像是一个设计问题 - 何时使用ViewState。由于您有源,您显然知道哪些控件使用ViewState,因此不需要猜测或发现。

IsPostback是确定GET或POST的常用方法。您还可以检查Request.HttpMethod。为了决定何时使用ViewState,页面Postback将在其任务完成之前(即根据用户操作更新一些控件)?如果你将Postbck,并填充所有字段的成本太高,那么使用ViewState。或者使用Ajax调用来避免仅用于更新内容的回发。

请记住,当您进行回发时,您不需要ViewState来读取值。控件在Form集合中传递。