Я прочитал статью Лао Чжао сегодня, но все равно не мог ее отладить.
Кода -копия выглядит следующим образом:
[Ajaxpro.ajaxmethod]
public String getTml ()
{
UcviewHelper <SerCOntrol> ViewManager = new UCViewHelper <SercerControl> ();
USERCONTROL CONTROL = ViewManager.LoadViewControl ("~/uc/QuideoutModel.ascx");
string s = viewManager.renderview (control);
возврат S;
}
открытый класс UCViewHelper <T> где t: usercontrol
{
Частный 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 ();
}
}
класс mypage: page
{
public override void vervifyrenderingInserverform (управление контролем)
{
// if (управление - это Gridview || Control - это USERCONTROL)
// {
// возвращаться;
//}
//base.verifyRenderingInserverform(Control);
}
}
Тест прошел.
если:
Кода -копия выглядит следующим образом:
[Ajaxpro.ajaxmethod]
public String getTml ()
{
string s = getString ();
возврат S;
}
public String getString ()
{
USERCONTROL CONTROL = LOADCONTROL ("~/uc/diftoutmodel.ascx") как usercontrol;
Stringwriter tw = new StringWriter ();
Htmltextwriter writer = new htmltextwriter (tw);
Control.RenderControl (писатель);
return writer.innerwriter.tostring ();
}
public override void vervifyrenderingInserverform (управление контролем)
{
// if (управление - это Gridview || Control - это USERCONTROL)
// {
// возвращаться;
//}
//base.verifyRenderingInserverform(Control);
}
Причина в том, что код Лао Чжао унаследовал страницу, а затем использовал VerifyRenderingInserverform для проверки. Во -вторых, мой код не наследовал страницу и непосредственно использовал VerifyRenderingInserverform, поэтому он вызовет