【问题标题】:Page enableEventValidation="true" error页面 enableEventValidation="true" 错误
【发布时间】:2014-03-17 22:08:14
【问题描述】:

我正在创建一个客户端插入表单,在此表单中有一个名为 Id 的 <asp:HiddenField/> 用于保存选定的客户端 ID,但是当我尝试提交表单时,它出现在 Page enableEventValidation="true" 错误,当我重命名此 HiddenField对于任何其他 ID,它都可以工作

<asp:HiddenField runat="server" ID="Id" />

当我设置 enableEventValidation="false" 时,我的表单可以提交成功,但也许我以后会需要它

我该如何解决这个问题?保持HiddenField 命名为Id

打印屏幕:

【问题讨论】:

    标签: asp.net postback


    【解决方案1】:

    您几乎已经回答了自己的问题。完成这项工作的唯一方法是设置enableEventValidation="false" 或重命名您的HiddenField

    出于安全原因,重命名它是最好的解决方案

    【讨论】:

    • 好吧,但为什么我不能命名“Id”进行控制?它是 asp.net 的保留字吗?
    • 我实际上创建了一个示例应用程序,它有一个名为 Id 的隐藏字段,它不会导致任何问题。与此字段结合使用时,一定有其他原因导致问题。
    【解决方案2】:

    如果你使用的是framework 4.0,那么进入web.config()

    <configuration>
        <system.web>
            <pages validateRequest="false" />
        </system.web>
    </configuration>
    

    如果您使用的是框架 4.5,则进入 web.config (requestValidationMode="2.0")

    <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" requestValidationMode="2.0"/>
    </system.web>
    

    Link

    【讨论】:

      【解决方案3】:

      这可能不是您的问题的解决方案,但我遇到了同样的问题并通过在绑定数据之前检查回发来解决它。

        (!IsPostBack)
      {
        binddata(); //this was my gridview binding function
      }
      

      【讨论】:

        【解决方案4】:

        当页面上有另一个表单不包含 runat = server.请检查母版页或当前页是否有其他表单。

        【讨论】:

          猜你喜欢
          • 2011-07-13
          • 2013-02-19
          • 1970-01-01
          • 2018-05-31
          • 1970-01-01
          • 2016-04-21
          • 2015-06-22
          • 1970-01-01
          • 2012-01-15
          相关资源
          最近更新 更多