1

I'm using SharePoint 2010 Foundation with Visual Studio 2010 Ultimate. I developed a Web Part with extensive use of JavaScript and Ajax call.

I deploy application by Visual Studio correctly, enable feature without problem but when I try save a page that include my Web Part I receive this error:

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) +11057248
System.Web.UI.WebControls.DropDownList.LoadPostData(String postDataKey, NameValueCollection postCollection) +72
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +507
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2071

If I disable EventValidation I haven't this problem, but in production environment I would avoid disable this feature. Recently I change static html JavaScript reference with SharePoint:ScriptLink element. Can this cause the problem? I use this syntax:

<SharePoint:ScriptLink ID="ScriptLinkJquery" Name="~SiteCollection/MyLibrary/Scripts/Example.js" runat="server"></SharePoint:ScriptLink>

Can you help me?

Thanks

1

Apparently, .NET wants to ensure that what went down with the control is the same thing that came up with the control (ie, make sure that nothing malicious was added to the results coming back from a server-created control).

As a result, you can disable the EventValidation, as you did. Visual Studio, then, no longer gives you the error because it's not checking the control's values any longer.

Alternatively, you can use ClientScriptManager.RegisterForValidation in a render method. This fix, however, requires that you "register" every possible value for the control!

See here for more info on how to do this:

ASP.NET Event Validation and “Invalid Callback Or Postback Argument” : Part II

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.