今天看了老赵的文章可是怎么都调试不通过。
复制代码代码如下:[AjaxPro .Ajax方法]公共字符串gethtml(){ ucviewpelpercontrol viewManager=new ucviewpelpercontrol();用户控制控制=视图管理器.LoadViewControl(' ~/UC/gift outmodel。ascx’);字符串s=视图管理器.RenderView(控件);返回s;}公共类UcViewHelperT,其中T :用户控件{ private my page m _ page holder公共测试加载视图控件(字符串路径){ m _ page holder=new MyPage();返回(T)m_pageHolder .LoadControl(路径);}公共字符串渲染视图控件){StringWriter输出=new StringWriter();this.m_pageHolder .控件。添加(控件);HttpContext .当前。服务器。执行(这个。m _ page holder,输出,假);返回输出. ToString();} } class MyPage : Page { public override void verifyrindingserver performat(控件控件){//if(控件为GridView ||控件为用户控件)//{//返回;//}//基础.VerifyRenderingInServerForm(控件);}}
测试通过。
如果:
复制代码代码如下:[AjaxPro .Ajax方法]公共字符串gethtml(){ string s=GetString();返回s;} public string getString(){ user control control=load control(~/UC/giftoutmodel。ascx’)作为用户控制;StringWriter tw=new StringWriter();html文本编写器writer=新的HTMl文本编写器(tw);控制RenderControl(编写器);回归作家InnerWriter。ToString();}公共覆盖void verifyrindingservperform(Control Control){//if(Control为GridView ||控件为用户控件)//{//返回;//}//基础.VerifyRenderingInServerForm(控件);}
究其原因,原来是老赵的代码继承了页然后使用验证呈现服务器表单验证,二我的代码没有继承页直接使用验证呈现服务器表单所以会造成