b3n*_*b3n 5 asp.net asp.net-ajax cascadingdropdown invalid-postback
我有一个包含各种控件的网页.其中两个是下拉列表.第一个下拉列表从page_load事件的xml文件中填充.这很好用.在第一个下拉列表中附加了一个级联下拉列表扩展器,每次更改第一个下拉列表中的选择时,都会调用Web服务.这也很好.在我的两个下拉列表下面,我有一个按钮,可以将页面发回.但是,当我在第二个下拉列表中进行选择并单击按钮时,我收到以下错误:
'/'应用程序中的服务器错误.无效的回发或回调参数.使用配置或页面中的<%@ Page EnableEventValidation ="true"%>启用事件验证.出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.ArgumentException:无效的回发或回调参数.使用配置或页面中的<%@ Page EnableEventValidation ="true"%>启用事件验证.出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[ArgumentException:无效的回发或回调参数.使用配置或页面中的<%@ Page EnableEventValidation ="true"%>启用事件验证.出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证.] System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId,String argument)+10945696 System.Web.UI .WebControls.DropDownList.LoadPostData(String postDataKey,NameValueCollection postCollection)+72 System.Web.UI.Page.ProcessPostData(NameValueCollection postData,Boolean fBeforeLoad)+507 System.Web.UI.Page.
抱歉可怕的格式化.有关为什么抛出此错误以及如何防止它的任何建议?
谢谢,
本
我刚刚找到了我自己问题的答案。
问题是 AJAX 将新值添加到下拉列表中,但由于它们不在视图状态中,ASP.NET 会停止并出现错误。这里有一篇很棒的博客文章解释了如何解决这个问题,它对我很有用。
基本上,您只需对 dropdownlist 类进行子类化,即可摆脱 SupportsEventValidation 属性 -> ASP.NET 不再验证值,一切运行正常!
在这里阅读整篇文章: 子类化 DropDownList 以删除 SupportsEventValidation 属性
| 归档时间: |
|
| 查看次数: |
12278 次 |
| 最近记录: |