gpt4 book ai didi

.net - 事件验证 : Allow __doPostBack for one control and *any* arguments

转载 作者:行者123 更新时间:2023-12-05 00:37:18 26 4
gpt4 key购买 nike

我正在使用

__doPostBack(clientIdOfSomeButton, someData);

在 JavaScript 中创建 PostBack。问题是 someData事先不知道,事件验证开始,因为我不能 ClientScript.RegisterForEventValidation someData 的每个可能值.

到目前为止,我只能看到解决这个问题的两种可能性:
  • 关闭页面的事件验证,出于安全原因不建议这样做。
  • 不是通过事件验证传递数据,而是通过 JavaScript 将数据放入一些隐藏的文本字段中,然后调用 __doPostBack .那是丑陋的。

  • 有没有我错过的第三种选择?理想情况下,我想要类似 ClientScript.RegisterForEventValidationIgnoreArguments(myButton) 的东西,但这样的东西不存在......

    最佳答案

    如果 someData 事先不知道,那么服务器如何知道回发的含义?第二个参数是指示事件的类型或有关事件的特定信息,而不是用户输入的值。

    我会注册一个自定义参数并以另一种方式传递 someData 。

    ClientScript.RegisterForEventValidation(clientIdOfSomeButton, "CustomEvent");

    在客户端

    html
    <input name="customArgument" type="hidden" value="" />

    Javascript
    document.forms[0].customArgument = someData;
    __doPostBack(clientIdOfSomeButton, '');

    然后检索你的值(value)
    if(Request["__EVENTARGUMENT"] == "customArgument")
    {
    var customArgument = Request["customArgument"]
    }

    关于.net - 事件验证 : Allow __doPostBack for one control and *any* arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094842/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com