ฉันอ่านบทความของ Lao Zhao ในวันนี้ แต่ฉันไม่สามารถแก้ไขข้อบกพร่องได้
การคัดลอกรหัสมีดังนี้:
[ajaxpro.ajaxmethod]
สตริงสาธารณะ gettml ()
-
UcViewHelper <EserControl> ViewManager = ใหม่ UCViewHelper <EserControl> ();
การควบคุม userControl = viewManager.loadViewControl ("~/UC/GiftOutModel.ascx");
String s = viewManager.renderview (ควบคุม);
กลับ s;
-
ชั้นเรียนสาธารณะ Ucviewhelper <t> โดยที่ t: usercontrol
-
mypage ส่วนตัว m_pageholder;
Public T LoadViewControl (เส้นทางสตริง)
-
m_pageolder = new myPage ();
return (t) m_pageholder.loadcontrol (เส้นทาง);
-
สตริงสาธารณะ Renderview (T ควบคุม)
-
stringWriter output = new StringWriter ();
this.m_pageholder.controls.add (ควบคุม);
httpContext.current.server.execute (this.m_pageholder, เอาต์พุต, เท็จ);
return output.toString ();
-
-
คลาส mypage: หน้า
-
สาธารณะแทนที่โมฆะ VerifyRenderingInerVerform (ควบคุมการควบคุม)
-
// ถ้า (การควบคุมคือ gridview || การควบคุมคือ userControl)
-
// กลับ;
-
//base.verifyrenderingInerverform(Control);
-
-
การทดสอบผ่านไป
ถ้า:
การคัดลอกรหัสมีดังนี้:
[ajaxpro.ajaxmethod]
สตริงสาธารณะ gettml ()
-
สตริง s = getString ();
กลับ s;
-
สตริงสาธารณะ getString ()
-
การควบคุม userControl = loadControl ("~/UC/GiftOutModel.ascx") เป็น userControl;
StringWriter tw = new StringWriter ();
htmlTextWriter Writer = ใหม่ htmlTextWriter (TW);
control.renderControl (นักเขียน);
return writer.innerwriter.toString ();
-
สาธารณะแทนที่โมฆะ VerifyRenderingInerVerform (ควบคุมการควบคุม)
-
// ถ้า (การควบคุมคือ gridview || การควบคุมคือ userControl)
-
// กลับ;
-
//base.verifyrenderingInerverform(Control);
-
เหตุผลก็คือรหัสของ Lao Zhao สืบทอดหน้าและจากนั้นใช้ VerifyRenderingInerVerform เพื่อตรวจสอบ ประการที่สองรหัสของฉันไม่ได้สืบทอดหน้าและใช้ VerifyRenderingInerverform โดยตรงดังนั้นมันจะทำให้เกิด