我收到以下详细错误:
无效的回发或回调参数。在配置中使用启用事件验证,或在页面中使用 <%@ 页面启用事件验证 ="true" %>。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器。
我有一个带有网络部件的 Web 部件页面,其中我确实有一个 UPdatePanel 和一个按钮 单击按钮后,我收到此错误。
我们在其中一个环境中使用的相同包 (wsp) 工作正常,而在另一个环境中则无法正常工作。
在这方面的帮助是非常可观的。
如果没有代码,诊断您的问题将非常困难。
您提到您使用更新面板,该面板本质上会自动将您的页面存储在内存中,然后它将呈现适当的 Ajax 以隐藏回发。 Microsoft开发人员网络 (MSDN) 基本上会在您使用带有客户端修改的EnableEventValidation
时发出警告。
如果编写在运行时更改客户端中的控件的客户端脚本 时,您可能必须在 以避免错误事件验证错误。
此外,如果直接在代码中web.config
初始化,则应确保在初始化页面之前调用验证。 所以我可能会使用:
protected void Page_PreInit()
{
// Before Page Initialization
}
这可能会消除前端的任何错误,没有代码就不能提供更多帮助。
没有一些代码可以继续,我会在黑暗中发射一些子弹,我对 SharePoint 几乎一无所知,所以我可能在这里错过了一些明显的东西:
首先,检查您的环境,可能有一个不同的web.config,其EnableEventValidation设置为false。
其次,你在Page_Load
做任何DataBind
? 根据代码正在执行的任何操作,您可能需要确保它未在回发上绑定 - 或者如果它已经绑定;尝试在回发上绑定。
第三,表单中任何位置都包含任何html或<>字符?还有数据中的换行符(我的记忆在这个有点模糊)我似乎记得,像这样:
<option value="
my value
">select this</option>
也可能导致它。因此,建议对数据进行Trim()
。
最后:标签出血,检查您的标签都没有未关闭,例如<span <asp:TextBox [...] />
这也可能是原因。
<%@ Page EnableEventValidation="false" %>