无效的回发或回调参数。事件验证已启用使用“

28 浏览
0 Comments

无效的回发或回调参数。事件验证已启用使用“

当我从客户端回发页面时,出现以下错误。我有JavaScript代码在客户端上修改了asp:ListBox。

我们如何解决这个问题?

以下是错误的详细信息:

Server Error in '/XXX' Application.
--------------------------------------------------------------------------------
Invalid postback or callback argument.  Event validation is enabled using  in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Invalid postback or callback argument.  Event validation is enabled using  in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ArgumentException: Invalid postback or callback argument.  Event validation is enabled using  in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.]
   System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +2132728
   System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +108
   System.Web.UI.WebControls.ListBox.LoadPostData(String postDataKey, NameValueCollection postCollection) +274
   System.Web.UI.WebControls.ListBox.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +11
   System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +353
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1194
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433

admin 更改状态以发布 2023年5月23日
0
0 Comments

问题在于ASP.NET不知道这个额外或移除的列表项。

您有几个选项(列在下面):

  • 禁用事件验证(不好的主意,因为您会失去很少代价的安全保障)。
  • 使用ASP.NET Ajax UpdatePanel(将列表框放入Updatepanel中,并在添加或删除列表框时触发更新。这样,视图状态和相关字段会更新,事件验证将通过。)
  • 忘记客户端并使用经典的回发,在服务器端添加或删除列表项。
0
0 Comments

你的Page_Load事件中有代码吗?如果有,那么添加以下内容可能会有所帮助。

if (!Page.IsPostBack)
{ //do something }

当你点击命令并且Page_load再次运行时,就会抛出这个错误,在正常的生命周期中,它将是:
Page_Load -> 点击命令 -> Page_Load (再次) -> 处理ItemCommand事件

0