1

IButtonControl通常の ASP.NET ボタンから派生していないカスタム ボタン コントロールを実装しようとしています。イベントとプロパティをすべて実装し、サーバーからクライアントに移動しました。

問題はPostBackUrl、フォームに通常のボタンがある場合にのみ機能することです。私がすることは次のとおりです。

theForm.action = this._postbackUrl;
 __doPostBack(this._uniqueID, v);
 } catch (ex) { }

しかし、ページに自分のボタンだけを置いてクリックすると、MAC ViewState Validation failed が表示されます。おそらくこれは、サイトが私のボタンで変更する準備ができていなかったため、安全ではないと考えたためです.

誰でもこれを回避する方法を知っていますか。ASP ボタンのコードを調べたところ、いくつかのことを行いますが、その一部は内部的なものです。

これらのどれも機能しません。それらには以下が含まれます:

this.Page.ClientScript.RegisterForEventValidation(postbackOptions);
 // where postbackOptions is built based upon my control
m = Page.GetType().GetMethod("RegisterWebFormsScript", BindingFlags.Instance | BindingFlags.NonPublic);
        m.Invoke(Page, new object[] { });
        m = Page.GetType().GetMethod("RegisterPostBackScript", 

BindingFlags.Instance | BindingFlags.NonPublic);
m.Invoke(Page, new object[] { });

最後の 2 つは、WebForms_DoPostbackWithOptions スクリプトを表示させることでした。

誰かが同様の問題に遭遇したり、いくつかのアイデアを持っていますか?

よろしくお願いします、デイブ

4

0 に答える 0