今天上午,我试着将FreeTextBox放在MasterPages的示例程序中,结果一点问题没有,原来我错怪了MasterPages,我就怀疑FreeTextBox有问题,又分析了一下FreeTextBox的代码,也没发现问题。后来,我想到在MasterPages的示例程序的web.config中允许了Trace, 我何不打开.Text的Trace比较一下,经过比较我发现正常的FreeTextBox的视图状态大小字节数为264, 而.Text中却为0,原来问题出在这个地方,我又仔细研究了.Text中的代码,在.Text中有一个DottextViewStatelessPage类,这个类屏蔽了ViewState,生成页面的类继承了该类,于是,改成直接从System.Web.UI.Page继承,也就是说打开了ViewState,结果问题就解决了。
顺便将这个罪魁祸首贴出来示众:
public class DottextViewStatelessPage : System.Web.UI.Page
{
public DottextViewStatelessPage()
{
this.EnableViewState = false;
}
protected override object LoadPageStateFromPersistenceMedium()
{return null;}
protected override void SavePageStateToPersistenceMedium(object viewState){}
}