Saya membaca artikel Lao Zhao hari ini tetapi tidak dapat menyahpepijatnya.
[AjaxPro.AjaxMethod]
rentetan awam gethtml()
{
UcViewHelper viewManager = UcViewHelper();
Kawalan UserControl = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx");
string s=viewManager.RenderView(control);
kembali s;
}
kelas awam UcViewHelper di mana T : UserControl
{
MyPage m_pageHolder peribadi;
awam T LoadViewControl(laluan rentetan)
{
m_pageHolder = Halaman Saya baharu();
kembalikan (T)m_pageHolder.LoadControl(path);
}
rentetan awam RenderView(kawalan T)
{
Output StringWriter = StringWriter baharu();
this.m_pageHolder.Controls.Add(control);
HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
pulangkan output.ToString();
}
}
kelas Halaman Saya : Halaman
{
public override void VerifyRenderingInServerForm(Kawalan kawalan)
{
//jika (kawalan ialah GridView || kawalan ialah UserControl)
//{
// kembali;
//}
//base.VerifyRenderingInServerForm(control);
}
}
Ujian lulus.
Jika:
[AjaxPro.AjaxMethod]
rentetan awam gethtml()
{
string s = getString();
kembali s;
}
rentetan awam getString()
{
Kawalan UserControl = LoadControl("~/uc/giftoutmodel.ascx") sebagai UserControl;
StringWriter tw = new StringWriter();
Penulis HtmlTextWriter = HtmlTextWriter(tw);
baharu
control.RenderControl(penulis);
kembali penulis.InnerWriter.ToString();
}
public override void VerifyRenderingInServerForm(Kawalan kawalan)
{
// if (kawalan ialah GridView || kawalan ialah UserControl)
// {
// kembali;
//}
//base.VerifyRenderingInServerForm(control);
}
Alasannya ialah ternyata kod Lao Zhao mewarisi Halaman dan kemudian menggunakan VerifyRenderingInServerForm untuk mengesahkan Kedua, kod saya tidak mewarisi Halaman dan secara langsung menggunakan VerifyRenderingInServerForm, jadi ia akan menyebabkan
.