js は UserControl コンテンツを取得して、html_javascript スキルをスペルする際の利便性を提供します

WBOY
リリース: 2016-05-16 16:32:12
オリジナル
1471 人が閲覧しました

今日 Lao Zhao の記事を読みましたが、デバッグできませんでした。

コードをコピーします コードは次のとおりです:

[AjaxPro.AjaxMethod]
パブリック文字列 gethtml()
{

UcViewHelper viewManager = new UcViewHelper();
UserControl コントロール = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx");
文字列 s=viewManager.RenderView(control);

return s;

}

public class UcViewHelper ここで、 T : UserControl
{
プライベート マイページ m_pageHolder;
public T LoadViewControl(文字列パス)
{
m_pageHolder = 新しい MyPage();
return (T)m_pageHolder.LoadControl(path);
}
パブリック文字列 RenderView(T コントロール)
{
StringWriter 出力 = new StringWriter();

this.m_pageHolder.Controls.Add(コントロール);
HttpContext.Current.Server.Execute(this.m_pageHolder, 出力, false);

出力を返す.ToString();
}
}

クラス MyPage : ページ
{
public override void VerifyRenderingInServerForm(Control control)
{
//if (コントロールは GridView || コントロールは UserControl)
//{
// 戻り値;
//}
//base.VerifyRenderingInServerForm(control);
}
}

テストに合格しました。

場合:

コードをコピーします コードは次のとおりです:

[AjaxPro.AjaxMethod]
パブリック文字列 gethtml()
{
文字列 s = getString();
return s;

}
パブリック文字列 getString()
{
UserControl コントロール = LoadControl("~/uc/giftoutmodel.ascx") as UserControl;
StringWriter tw = new StringWriter();
HtmlTextWriter ライター = new HtmlTextWriter(tw);
control.RenderControl(ライター);
return Writer.InnerWriter.ToString();
}

public override void VerifyRenderingInServerForm(Control control)
{
// if (コントロールは GridView || コントロールは UserControl)
// {
// 戻り値;
//}
//base.VerifyRenderingInServerForm(control);
}

その理由は、Lao Zhao のコードが Page を継承し、VerifyRenderingInServerForm を使用して検証していることが判明したためです。次に、私のコードは Page を継承せず、直接 VerifyRenderingInServerForm を使用したため、

が発生します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート