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 スクリプトを表示させることでした。
誰かが同様の問題に遭遇したり、いくつかのアイデアを持っていますか?
よろしくお願いします、デイブ