【问题标题】:ASP.NET 1.X to ASP.NET 2.0: Broken Validation on PostbackASP.NET 1.X 到 ASP.NET 2.0:回发时验证失效
【发布时间】:2009-05-18 15:51:19
【问题描述】:

美好的一天,

我们已将 Web 应用程序从 ASP.NET 1.1 迁移到 ASP.NET 2.0。

我们有一个页面,其中包含几个带有各自验证器的文本框。

在 .NET 1.1 上,当文本框包含 INVALID 值时,单击“提交”按钮不会产生回发(例如,什么都不会发生)。

但是,当我们迁移到 .NET 2.0 时,即使存在 INVALID 值,回发仍然会发生。 (例如,按下“提交”按钮将执行回发)。

从 1.1 迁移到 2.0 时是否存在验证问题?

附加信息: “提交”按钮是一个输入按钮:

<input type="button">

使用&lt;asp:button&gt; 代替&lt;input&gt; 按钮将起作用并解决问题。但是,&lt;input type="button"&gt; 能够调用 javascript,该 javascript 将在页面上生成“Wait...Loading”标签覆盖。使用 asp:button,“等待...加载”覆盖 JavaScript 将不会被调用。

编辑:真正的问题和解决方案。

无论如何,真正的问题是点击验证 javascript 在迁移过程中被破坏了。

原来的工作脚本是:

<input language="javascript" onclick="{if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()) __doPostBack('m_bt_Save','')} " name="m_bt_Save" id="m_bt_Save" type="button" value="Save" width="80px" height="24px" />

但 ASP.NET 2.0 将其更改为:

<input onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(''); __doPostBack('m_bt_Save','')" name="m_bt_Save" type="button" id="m_bt_Save" value="Save" width="80px" height="24px" />

所以我的解决方案是,将 INPUT 按钮更改为 ASP:button,然后使用正确的 ASP.NET 1.1 javascript 验证添加执行页面加载的属性,如下所示:

m_bt_Save.Attributes.Add("OnClick", "if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()) __doPostBack('m_bt_Save','')");

【问题讨论】:

    标签: asp.net validation migration


    【解决方案1】:

    您可以做的一件事是,您可以将所需的 JS 添加到按钮中。

    Button1.Attributes.Add("OnClick", "do my js stuff here");
    

    这将允许您拥有与输入完全相同的功能,并使其正常工作。

    否则,我的猜测是您需要修改输入按钮提交的方式以在它执行 from 提交之前调用验证页面方法。

    【讨论】:

    • 我同意,如果您切换到
    • 您好,感谢您的快速回复。 “在这里做我的 js 东西”是否会立即 OnClick 执行?喜欢输入按钮的行为吗?
    • 帮助解决了我的问题。检查我对问题的编辑以了解真正的问题和解决方案。
    【解决方案2】:
    【解决方案3】:

    这也发生在我们的升级中。我认为我们将其缩小到 WebUIValidation.js 文件的问题。我认为重新安装它是我们的最终解决方案。

    【讨论】:

      猜你喜欢
      • 2011-03-10
      • 2010-11-27
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多