让我们看看什么时候服务端控件需要包含在<form >继续往下看
在这里以TextBox来举例,
public class TextBox : WebControl, IPostBackDataHandler, IEditableTextControl, ITextControl
{
}
TextBox继承了接口IPostBackDataHandler,在加载回传数据,先跟有ViewState加载过来的数据比较,以此来决定是否要为该
控件触发TextChanged事件,所以TextBox在Render方法中会调用Page.VerifyRenderingInServerForm(this);来验证控件是否在<form /></form>是怎么输出来的呢?
是HtmlForm.RenderChildren方法调用Page.BeginFormRender 和Page.EndFormRender
这两个方法用来给<form>的开始和结束位置,Render所有Register的Hidden Fields,同时也Render用来保存ViewState的
Hidden Field。
到这里,我们对整个过程都有个基本的了解,那么当我们在做网站的时候,如果网站只是用来显示给用户看,这时候界面的交互
功能不是很大的话,我们完全可以把viewstate去掉,交互功能让ajax去实现。
当然如果是办公网站的话有的就不是很适合了。
如果你只是把DOCUMENT的属性enableViewState设置成为Flase的话,还会存在<form />就没有了。
这样做有利有弊,看你怎么衡量了。
利:少了上面的很多字符。
弊:有几个web控件用不了。
看看我做的例子吧
/Files/hongzhenhua/viewstateTest.rar
是不是没有<input type="hidden" name="__VIEWSTATE" value="dDwtMTc3M" />出现呢?

相关文章:

  • 2022-02-16
  • 2021-07-01
  • 2022-12-23
  • 2021-09-22
  • 2021-06-26
  • 2021-10-28
  • 2022-12-23
  • 2021-10-10
猜你喜欢
  • 2021-07-15
  • 2022-12-23
  • 2022-02-02
  • 2021-08-01
  • 2021-08-07
  • 2021-04-26
  • 2021-12-20
相关资源
相似解决方案