js获取UserControl内容为拼html时提供方便_Javascript教程-查字典教程网
js获取UserControl内容为拼html时提供方便
js获取UserControl内容为拼html时提供方便
发布时间:2016-12-30 来源:查字典编辑
摘要:今天看了老赵的文章可是怎么都调试不通过。复制代码代码如下:[AjaxPro.AjaxMethod]publicstringgethtml()...

今天看了老赵的文章可是怎么都调试不通过。

复制代码 代码如下:

[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 所以会造成

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类