RegisterForEventValidationはレンダリング中にのみ呼び出すことができます。質問する

RegisterForEventValidationはレンダリング中にのみ呼び出すことができます。質問する

jQuery Ajax から呼び出される Web メソッドがあります:

[WebMethod]
public string TestMethod(string param1, string param2)
{
    StringBuilder b = new StringBuilder();
    HtmlTextWriter h = new HtmlTextWriter(new StringWriter(b));
    this.LoadControl("~/Pages/Controls/Listing.ascx").RenderControl(h);
    string controlAsString = b.ToString();
    return controlAsString;
}

(これは非静的メソッドであり、実行可能です。これは問題ではありません)

loadControl() メソッドが実行されると、「RegisterForEventValidation はレンダリング中にのみ呼び出すことができます」というエラーが表示されます。

現在の aspx に EnableEventValidation="false" を既に含めており、ビューステートも無効になっています。しかし、それでも同じエラーが発生します。これについて何かアイデアはありますか?

ベストアンサー1

解決策は、ページのイベント検証を無効にすることです。

<%@ Page ............ EnableEventValidation="false" %>

C#コードビハインドに次のメソッドを追加して、VerifyRenderingInServerFormをオーバーライドします。

public override void VerifyRenderingInServerForm(Control control)
{
    /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
       server control at run time. */
}

下記リンクを参照

http://www.codeproject.com/Questions/45450/RegisterForEventValidation-can-only-be-called-duri

おすすめ記事