zoukankan      html  css  js  c++  java
  • Asp.Net 2.0 中"回发或回调参数无效"的解决方案

        这两天开发的时候碰到一个问题:在用Ajax做了联动的下拉框之后使用服务器的按钮事件报错:
        回发或回调参数无效。在配置中使用 或在页面中使用 <%@ Page EnableEventValidation="true" %>启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
        到网上查了一下,这个错误一般的解释都是:
        目前为止遇到的出现情况有两种:
    一是Form嵌套,一个页面只能有一个Form,仔细检查代码就可以解决。
    二是在下拉菜单中使用ajax,常见于省市联动菜单,可能是由于在aspx页面赋给了下拉菜单初始Item值,在事件回发时提示该错误,将下拉菜单初始Item值删除,在绑定事件中添加Item项。

        给出的解决方法有一些,经测试仅有一个方法有效:
        在后代码中使用Request.Form["DDLcity"]; 来获取相关dropdownlist的value值,而不能使用DDLcity.SelectedValue来获取。大概的原因是因为Ajax改动了页面的内容,回送到服务器的页面内容中的控件值就不再正常,只能通过原始的方法获取。
        这样的结果就是很不方便。而且在页面再次送到客户端的时候会导致Dropdownlist控件的内容紊乱,Ajax的优势失去了,需要在服务器端根据传回来的信息重新设置dropownlist的内容。现在还没有很完美的解决方案。
        没有试过微软的Ajax,不知道是否有同样的问题,想来是应该没有的。
  • 相关阅读:
    正则表达式语法
    javascript刷新页面方法
    数据表操作Sql语句
    UML中的关系讲解
    ASP.net和C#的MD5加密
    Excel导入数据库,兼容Excel2003,2007
    EXCEL文件导入数据库
    javascript 控制文本框输入格式
    键盘扫描码
    jquery在不同浏览器下的兼容性问题
  • 原文地址:https://www.cnblogs.com/badwood316/p/977202.html
Copyright © 2011-2022 走看看