无效的回发或回调参数。使用配置或<%@ Page EnableEventvalidation =“true”%>启用事件验证

时间:2015-01-15 05:41:53

标签: c# asp.net updatepanel sharepoint-2013

我收到以下详细错误:

无效的回发或回调参数。使用配置或<%@ Page EnableEventvalidation =“true”%>启用事件验证在一个页面中。出于安全目的,此功能将验证回发或回调事件的参数是否来自最初呈现它们的服务器。

我有一个带有webpart的webpart页面,我有一个UPdatePanel和一个按钮按钮点击我收到此错误。

我们在我们的某个环境中使用的相同包(wsp)工作正常,同样在另一个环境中不起作用。

这方面的帮助非常值得注意。

3 个答案:

答案 0 :(得分:2)

如果没有代码,诊断问题将非常困难。

您提到您使用更新面板,它本质上会自动将您的页面存储在内存中,然后它会呈现正确的 Ajax 来隐藏回发。当您使用EnableEventValidation进行客户端修改时,Microsoft Developer Network (MSDN)基本上会向您发出警告。

  

如果编写客户端脚本,在运行时更改客户端中的控件   时间,您可能必须使用RegisterForEventValidation方法   为了避免错误事件验证错误。

此外,如果您直接在代码中初始化web.config,则应确保在页面初始化之前调用验证。所以我可能会使用:

protected void Page_PreInit()
{
     // Before Page Initialization
}

这可能会消除前端的任何错误,没有代码可以提供更多帮助。

答案 1 :(得分:0)

没有一些代码可以继续,我会在黑暗中解决一些问题,我对SharePoint几乎一无所知,所以我可能会遗漏一些明显的东西:

首先,检查您的环境,可能有一个不同的web.config,其EnableEventValidation设置为false。

其次在Page_Load你在做DataBind吗?根据您的代码所做的任何事情,您可能需要确保它不对PostBack具有约束力 - 或者如果它已经存在;尝试在PostBack上绑定。

第三;任何html或< >字符包含在表单的任何位置?还有数据中的换行符(我的记忆在这个上有点模糊)我似乎记得,比如:

<option value="
my value
">select this</option>

也可能导致它。因此,建议对数据执行Trim()

最后:标签出血,检查没有任何标签是未关闭的,类似<span <asp:TextBox [...] />这也可能是原因。

答案 2 :(得分:0)

在页面指令中添加EnableEventValidation =“false”

  <%@ Page EnableEventValidation="false" %>