【问题标题】:asp.net validators still posting backasp.net 验证器仍在回发
【发布时间】:2009-11-13 23:02:57
【问题描述】:

我正在使用 .NET 附带的默认验证

我遇到的问题是,即使在我的浏览器上启用了 JavaScript,基本验证仍然允许回发。

    <asp:TextBox ID="TextBox1" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="Button" />

我的应用程序使用的是 UrlRewriting.Net...这可能是问题吗?

<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
    <rewrites>
        <!--Fix the WebResource JS Error-->
        <add name="WebResourceFix" virtualUrl="^~/WebResource.axd(.*)" rewriteUrlParameter="IncludeQueryStringForRewrite" destinationUrl="~/WebResource.axd$1" ignoreCase="true"/>
        <!--Fix the ScriptResource JS Error-->
        <add name="ScriptResource" virtualUrl="^~/ScriptResource.axd(.*)" rewriteUrlParameter="IncludeQueryStringForRewrite" destinationUrl="~/ScriptResource.axd$1" ignoreCase="true"/>
        <!--Allow Extensionless Pages-->
        <add name="pageExtensionless" virtualUrl="^~/(.+)$" redirectMode="Permanent" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/$1.aspx" ignoreCase="true"/>
    </rewrites>
</urlrewritingnet>

【问题讨论】:

    标签: asp.net validation postback


    【解决方案1】:

    尝试在您的按钮上添加CausesValidation = True

    <asp:Button ID="Button1" runat="server" Text="Button" CausesValidation="True" />
    

    【讨论】:

    • 我以前从未这样做过。这对我来说是一个新的。通常默认情况下会启用 CausesValidation。
    • 我同意,这很奇怪。我想知道文本框是否从容器控件继承了“CausesValidation=False”...
    • 我的站点中没有任何“CausesValidation”。
    • 对不起.. 我“回答”得太早了。原来我从 CodePlex 获得的 Google Maps Control 导致了验证问题。不知道如何解决它。
    【解决方案2】:

    以下是一些调试问题的建议:

    1. 使用 Fiddler 或其他一些 HTTP 调试器来确保页面正确下载用于提供客户端验证的外部 JavaScript 文件,并且这些客户端文件正确地从服务器返回(也就是说,它们没有返回 404 或其他一些 HTTP 错误代码)。
    2. 使用 Firebug 设置断点并逐步执行 JavaScript。

    【讨论】:

      【解决方案3】:

      在您的RequiredFieldValidator 中,我建议您尝试设置EnableClientScript="true"。希望这能解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        • 2017-10-22
        • 1970-01-01
        • 2015-07-05
        相关资源
        最近更新 更多