无效的回发或回调参数。在配置中启用事件验证或 <%@ 页面启用事件验证 ="true" %>



我收到以下详细错误:

无效的回发或回调参数。在配置中使用启用事件验证,或在页面中使用 <%@ 页面启用事件验证 ="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 [...] />这也可能是原因。

在页面指令中添加 EnableEventValidation="false"

 <%@ Page EnableEventValidation="false" %>

最新更新