【问题标题】:Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEventvalidation =”true” %>无效的回发或回调参数。使用配置或 <%@ Page EnableEventvalidation =”true” %> 启用事件验证
【发布时间】:2015-01-15 05:41:53
【问题描述】:

我收到以下详细错误:

回发或回调参数无效。使用配置或页面中的 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来自最初呈现它们的服务器。

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

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

非常感谢您的帮助。

【问题讨论】:

  • 有关 UpdatePanel 中内容的更多信息可能会有所帮助。是否有下拉列表/选择元素?您是否使用客户端 javascript 将选项动态添加到 DDL/select/radio 或类似的东西?
  • 正如@eol 所说,如果您正在更新从服务器端绑定数据的控件,例如下拉列表,然后使用 JavaScript 将项目添加到控件中,您将收到此类错误.但是,由于您使用的是更新面板,因此您可以触发更新面板的更新,如 here 所述。更多信息或实际代码会有所帮助。
  • 能否请您输入一些代码,以便我们更好地理解您的问题
  • 您是否通过 javascript 手动触发事件以用于 updatepanel 中的控件?或者您是否在客户端动态生成按钮并尝试单击? Viewstate is not match to 它给出了这个错误。

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


【解决方案1】:

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

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

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

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

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

这可能会消除前端的任何错误,而无需代码就无法提供更多帮助。

【讨论】:

    【解决方案2】:

    好吧,没有一些代码可以继续,我会在黑暗中开一些回合,我对 SharePoint 几乎一无所知,所以我可能在这里遗漏了一些明显的东西:

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

    其次是Page_Load,你在做什么DataBind?根据您的代码在做什么,您可能需要确保它没有绑定到 PostBack - 或者如果它已经绑定;尝试在 PostBack 上绑定。

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

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

    也可能导致。所以建议对数据进行Trim()

    最后:标签溢出,检查您的标签是否未关闭,例如&lt;span &lt;asp:TextBox [...] /&gt; 这也可能是原因。

    【讨论】:

      【解决方案3】:

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

       

      【讨论】:

        猜你喜欢
        • 2010-09-18
        • 2011-03-08
        • 1970-01-01
        • 2021-11-10
        • 1970-01-01
        • 2014-11-18
        相关资源
        最近更新 更多