js获取UserControl内容为拼html时提供方便
更新时间:2014年11月02日 14:37:58 投稿:whsnow
js获取UserControl内容时无法测试通过,原来是继承了Page 然后使用VerifyRenderingInServerForm验证
今天看了老赵的文章可是怎么都调试不通过。
复制代码 代码如下:
[AjaxPro.AjaxMethod]
public string gethtml()
{
UcViewHelper<UserControl> viewManager = new UcViewHelper<UserControl>();
UserControl control = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx");
string s=viewManager.RenderView(control);
return s;
}
public class UcViewHelper<T> where T : UserControl
{
private MyPage m_pageHolder;
public T LoadViewControl(string path)
{
m_pageHolder = new MyPage();
return (T)m_pageHolder.LoadControl(path);
}
public string RenderView(T control)
{
StringWriter output = new StringWriter();
this.m_pageHolder.Controls.Add(control);
HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
return output.ToString();
}
}
class MyPage : Page
{
public override void VerifyRenderingInServerForm(Control control)
{
//if (control is GridView || control is UserControl)
//{
// return;
//}
//base.VerifyRenderingInServerForm(control);
}
}
测试通过。
如果:
复制代码 代码如下:
[AjaxPro.AjaxMethod]
public string gethtml()
{
string s = getString();
return s;
}
public string getString()
{
UserControl control = LoadControl("~/uc/giftoutmodel.ascx") as UserControl;
StringWriter tw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(tw);
control.RenderControl(writer);
return writer.InnerWriter.ToString();
}
public override void VerifyRenderingInServerForm(Control control)
{
// if (control is GridView || control is UserControl)
// {
// return;
//}
//base.VerifyRenderingInServerForm(control);
}
究其原因,原来是老赵的代码 继承了Page 然后使用VerifyRenderingInServerForm验证,二我的代码没有继承Page直接使用VerifyRenderingInServerForm 所以会造成
相关文章
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
这篇文章主要介绍了JS实用技巧,包括常见的js屏蔽错误、div滚动条设置以及背景图片位置等,代码简洁易懂,非常实用,需要的朋友可以参考下2016-06-06使用webpack/gulp构建TypeScript项目的方法示例
这篇文章主要介绍了使用webpack/gulp构建TypeScript项目的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12
最新评论