You've pretty much answered your own question. The only way to make this work is set enableEventValidation="false"
or rename your HiddenField
Renaming it would be the best solution here, for security reasons
Question
I'm creating a client insert form, in this form has a <asp:HiddenField/>
named Id for save selected client id, but when I try submit form, it is on Page enableEventValidation="true"
error, when I rename this HiddenField
for any other Id, it's work
<asp:HiddenField runat="server" ID="Id" />
My form can submit success when I set enableEventValidation="false", but maybe I will need it in future
How to can I resolve this problem? keep HiddenField
named Id
PrintScreen:
Solution
You've pretty much answered your own question. The only way to make this work is set enableEventValidation="false"
or rename your HiddenField
Renaming it would be the best solution here, for security reasons
OTHER TIPS
If you're are using framework 4.0 then entry in web.config ()
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
If you're using framework 4.5 then entry in web.config (requestValidationMode="2.0")
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" requestValidationMode="2.0"/>
</system.web>
This might not be the solution for your problem, but i was having same problem and solved it by checking for postback before binding data.
(!IsPostBack)
{
binddata(); //this was my gridview binding function
}
This error also occurs when there is another form on the page that does not contain runat = server. Please check if there is another form on the master page or the current page.