我正在使用
__doPostBack(clientIdOfSomeButton, someData);
在JavaScript中创建PostBack。问题是提前不知道someData
,并且事件验证开始了,因为我无法ClientScript.RegisterForEventValidation
someData
的每个可能值。
到目前为止,我只能看到解决这个问题的两种可能性:
__doPostBack
。那很难看。我错过了第三种选择吗?理想情况下,我喜欢像ClientScript.RegisterForEventValidationIgnoreArguments(myButton)
这样的东西,但这样的东西不存在......
答案 0 :(得分:6)
如果事先不知道someData,那么服务器如何知道回发的含义?第二个参数是指示事件的类型或关于事件的特定信息,而不是用户输入的值。
我会注册一个自定义参数并以另一种方式传递someData。
ClientScript.RegisterForEventValidation(clientIdOfSomeButton, "CustomEvent");
在客户端
HTML
<input name="customArgument" type="hidden" value="" />
的Javascript
document.forms[0].customArgument = someData;
__doPostBack(clientIdOfSomeButton, '');
然后检索你的值
if(Request["__EVENTARGUMENT"] == "customArgument")
{
var customArgument = Request["customArgument"]
}