C#中“回发或回调参数无效”的解决办法

    asp.net中使用回发按钮时经常会遇到这样的错误:

    回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用<%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

    这是我们经常会犯的一个小错误,它的原因在于Page_Load方法中没有对页面是初次载入还是PostBack进行判断,导致回调事件触发前对控件进行了更改,此时,只要加入对是否PostBack的判断既可。如下例:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataBind();
        }
    }

相关文章:

  1. 给自己的域名邮箱添加了spf记录 最近几天向zju.edu.cn域名发送邮件连续被拒,经查原因为spf未设置好(本人使用QQ提供的域名邮箱,域名为chensj.cn)。遂设置之,效果待验。继续阅读 »...
  2. C#和C++混合编程的一些tips 最近帮朋友写个小东西的时候,刚好用到了C#和C++的混合编程,记录一些tips供日后参考。 首先说明下环境:C#调用C++的库函数,C++建立一个非托管类库项目,C#项目引用之。继续阅读 »...
  3. CQRS体系结构模式 本文介绍了CQRS模式的基本结构,并对其中一些重要概念作了注释,也是我在实践和思考当中总结出来的内容(PS:转载请注明出处)。学习过DDD 而刚刚开始CQRS的朋友,在阅读一些资料的时候势必会感到疑惑,希望本文能够帮助到这些朋友。比如最开始阅读的时候,我也不知道为什么一定要通过领域事件去更改对象状态,而不是在对象状态变更的时候,去触发领域事件,因为当时我仍然希望能够在Domain Model中方便地使用getter/setter,我当时也希望能够让Domain Model同时适应于经典DDD和CQRS架构。在经过多次尝试后发现,这种做法是不合理、不可取的,也正如Udi Dahan所说:CQRS是一种模式,既然是模式,就是用来解决特定问题的。 继续阅读 »...
  4. 海量数据面试题举例 大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。继续阅读 »...

发表评论

无觅相关文章插件,快速提升流量