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[] { });

最后两个是让 WebForms_DoPostbackWithOptions 脚本出现。

有没有人遇到过类似的问题或有一些想法?

请并谢谢你,戴夫

4

0 回答 0