Saya membaca artikel Lao Zhao hari ini tetapi saya tidak bisa men -debug.
Salinan kode adalah sebagai berikut:
[Ajaxpro.AjaxMethod]
string publik getTml ()
{
UcviewHelper <SuSerControl> viewManager = UCViewHelper baru <UserControl> ();
UserControl Control = viewManager.LoadViewControl ("~/uc/giftoutmodel.ascx");
string s = viewManager.renderview (kontrol);
kembali S;
}
Kelas Publik UCViewHelper <T> di mana T: Usercontrol
{
private mypage m_pageHolder;
Public t loadViewControl (jalur string)
{
m_pageHolder = myPage baru ();
return (t) m_pageHolder.LoadControl (path);
}
Public String Rendererview (T Kontrol)
{
Output stringwriter = stringwriter baru ();
this.m_pageHolder.controls.add (kontrol);
Httpcontext.current.server.execute (this.m_pageHolder, output, false);
return output.toString ();
}
}
Kelas MyPage: Halaman
{
Public Override Void VerifyRenderingInServerForm (Kontrol Kontrol)
{
// if (control is gridview || control is usercontrol)
// {
// kembali;
//}
//base.verifyrenderingInserverform informasi(control);
}
}
Tes lulus.
jika:
Salinan kode adalah sebagai berikut:
[Ajaxpro.AjaxMethod]
string publik getTml ()
{
string s = getString ();
kembali S;
}
string publik getstring ()
{
UserControl Control = LoadControl ("~/UC/GiftOutModel.ascx") sebagai UserControl;
StringWriter TW = New StringWriter ();
Htmltextwriter writer = htmltextwriter baru (TW);
control.renderControl (penulis);
return writer.innerwriter.tostring ();
}
Public Override Void VerifyRenderingInServerForm (Kontrol Kontrol)
{
// if (control is gridview || control is usercontrol)
// {
// kembali;
//}
//base.verifyrenderingInserverform informasi(control);
}
Alasannya adalah bahwa kode Lao Zhao mewarisi halaman dan kemudian digunakan VerifyRenderSerServerForm untuk memverifikasi. Kedua, kode saya tidak mewarisi halaman dan secara langsung digunakan verifyrenderingInserverform, jadi itu akan menyebabkan