首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带EventValidation的ASPX DropDownList误差

带EventValidation的ASPX DropDownList误差
EN

Stack Overflow用户
提问于 2012-06-21 20:20:43
回答 1查看 597关注 0票数 4

这肯定有一个明显的解决办法,但我很困惑。我们正在开发一个应用程序,主要是XHR-based,所以在使用.aspx时,很少使用典型的控件。然而,在一些地方,我们只是做一些基本的“将这些数据扔到用户的电子表格中”的事情,还有几个下拉列表,用于报告的时间范围,等等。

问题是,当我们使用asp:DropDownList控件时,它会立即导致将它们放入的任何页面在提交时抛出事件验证错误。我创建了测试页面,这些页面不共享应用程序的其他母版页面(也就是根本没有JS修改客户端),只是为了确保我们没有导致问题的偏离JS。

如果在下面的示例中删除DropDownList,则按钮单击就会很好。如果我按一下按钮,页面如图所示,它就会抛出Event Validation error

但是,在同一台机器上运行的其他应用程序(在4.0集成应用程序池中)没有显示这种行为,所以我假设它与配置有关。web.config是非常漂亮的standard...tried,在绝望的尝试中关闭了httpCompression部分,但没有效果。

有人对从这里开始有什么建议吗?请记住..。没有客户端修改,正在进行。这是直接从服务器到浏览器,然后点击ASP生成的按钮。

在页面指令中关闭事件验证确实可以消除错误,但是如果我能帮忙的话,我不想关闭验证。

环境

集成app-pool

  • Error发生在IE9/Chrome/Firefox/Safari

  • Windows 7 Pro
  • IIS 7.5
  • .NET 4.0

页面

代码语言:javascript
复制
<html>
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddlDays" runat="server">
            <asp:ListItem Text="30 Days" Value="30"></asp:ListItem>
            <asp:ListItem Text="60 Days" Value="60"></asp:ListItem>
            <asp:ListItem Text="90 Days" Value="90"></asp:ListItem>
        </asp:DropDownList>
        <asp:Button ID="butExport" Text="Export" runat="server" />
    </div>
    </form>
</body>
</html>

编解码器

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e) {
    butExport.Click += new EventHandler(butExport_Click);
}

void butExport_Click(object sender, EventArgs e) {
    Syslog("clicked");
}

表单数据(根据Chrome检查器)

  • __VIEWSTATE:/wEPDwULLTIwOTUzNjUzOTVkZIiv1cdholWibyWL8h5HASwxedB47NUpctCv8OQc1CWM
  • __EVENTVALIDATION:/wEWAgL0voCyDQKDgcL6CAX34hdaRiHyNiY1xLIh5Pr6aj5q8h8gGG875vMq1SXF
  • ddlDays:30
  • butExport:Export
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-25 21:21:09

好的,我开始检查我的项目,寻找可能导致问题的任何可能的配置项。结果发现,一位同事使用了WebControlAdapter,并将其应用于所有DropDownLists,而在呈现过程中,没有使用RegisterForEventValidation

我并不特别喜欢适配器,但为了继续生活,我把它留在了那里,在呈现绑定项时,我为每个值调用了Page.ClientScript.RegisterForEventValidation。这修复了应用程序中的每一个有问题的DropDownList

谢谢大家的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11146110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档