【问题标题】:RequiredFieldValidator works on dev and stage environments, not productionRequiredFieldValidator 适用于开发和舞台环境,而不是生产环境
【发布时间】:2010-08-05 16:33:41
【问题描述】:

在成功测试部署到我们的暂存环境后,我们将旧版 ASP.NET 应用程序部署到生产环境。该应用程序在一个特定的注册页面上使用了RequiredFieldValidators。在我们的开发和阶段环境中,验证器在单击“提交”时成功检测到空字段,显示错误消息并阻止表单提交。

但在生产环境中,验证器不会显示错误消息。单击提交将导致回发,代码隐藏检查 Page.IsValid 并正确检测到表单缺少字段,但重新显示注册表单,没有错误消息(即“请输入电子邮件”)给用户。

示例:(注意我没有明确声明 EnableClientScript 或 SetFocusOnError)

<asp:requiredfieldvalidator id=Requiredfieldvalidator1 runat="server" CssClass="NormalRed" Display="Dynamic" ErrorMessage="Please enter an email." ControlToValidate="txtEmail"></asp:requiredfieldvalidator>

两个环境(阶段和生产)是相同的:Win2K3 Server 和 IIS 7、SQL Server 2008 和 ASP.NET 1.1 运行时(尴尬)。

有什么想法吗?

【问题讨论】:

    标签: .net asp.net validation requiredfieldvalidator


    【解决方案1】:

    引用的 aspnet_client 文件夹是相同的还是您使用的版本不同?

    【讨论】:

    • 我现在会检查这个。我继承了这个遗留项目,很快发现以前的开发人员并没有花很多时间来确保应用程序代码树在不同环境之间保持一致,因此我们的生产环境很有可能缺少一些东西。
    • 另外一点,这个应用程序是在大约 2 个月前从另一个托管服务提供商那里复制过来的。我们只是将整个文件夹树复制到我们的新服务器上,它运行良好。我想我什至找不到 aspnet_client 文件夹,但我也欢迎 cmets 这样做。
    【解决方案2】:

    您是否看到任何 javascript 错误。

    用 Firebug 加载页面,看看是否有什么奇怪的事情发生。

    您是否将验证器设置为使用特定的 CSS 类?您是否上传了 CSS 文件?它被正确引用了吗?

    【讨论】:

    • 是的,验证器引用特定的 css 类,并上传 css 文件。其他页面中也引用了 css 以获取特定控件(主要是 texbox,而不是验证器),并且这些控件显示正确,所以我相信 css 没问题。话虽如此,我将从验证器中删除 css 引用并重新部署以查看是否有帮助。
    【解决方案3】:

    问题是网站树中完全缺少 aspnet_client 文件夹。我把这个文件夹从我们的开发环境复制到我们生产的网站根目录下,问题就解决了。谢谢杰伦。还要感谢 Jack Marchetti 的意见。

    【讨论】:

    • 其实这个问题好像只能在 Internet Explorer 中解决。 Firefox 仍然表现出与描述相同的问题。有什么想法吗?
    猜你喜欢
    • 2013-11-13
    • 2014-07-25
    • 2018-06-04
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    相关资源
    最近更新 更多