我正在尝试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 脚本出现。
有没有人遇到过类似的问题或有一些想法?
请并谢谢你,戴夫