【问题标题】:WebForms Unobtrusive Validation ModeWebForms 不显眼的验证模式
【发布时间】:2014-07-19 20:56:30
【问题描述】:

我在使用正则表达式验证器时遇到了错误。

1) 创建一个 ASP.NET Empty 应用程序(作为 WebApplication) 2)在WebApplication中添加一个Web Form 3)添加以下行:

<head></head>

4) 创建一个文件夹“Script”,仍在 WebApplication 树中 5)在文件夹内添加jquery-1.8.2.js文件 6)在表单下方的div内添加两个文本框:

<asp:TextBox ID="A" name="A" type="text" size="50" MaxLength="100" runat="server" />
    <asp:TextBox ID="B" name="B" type="text" size="50" MaxLength="100" runat="server" />

7) 为每个文本框添加一个 RegularExpressionValidator,因此代码如下:

<asp:TextBox ID="A" name="A" type="text" size="50" MaxLength="100" runat="server" />
    <asp:RegularExpressionValidator 
                ValidationGroup="alpha" ID="ControlA"
                runat="server" ErrorMessage="*" ControlToValidate="A" 
                ValidationExpression=".{10}">
            </asp:RegularExpressionValidator>
    <asp:TextBox ID="B" name="B" type="text" size="50" MaxLength="100" runat="server" />        
    <asp:RegularExpressionValidator 
                ValidationGroup="beta" ID="ControlB"
                runat="server" ErrorMessage="*" ControlToValidate="B" 
                ValidationExpression=".{2}">

8) 在文本框下方创建一个按钮:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

9) 在按钮方法“Button_click”中创建一个字符串来检查它是否有效: protected void Button1_Click(对象发送者,EventArgs e) { 字符串文本 = A.Text + " " + B.Text; }

10) 运行程序。

11) 任何错误,例如: 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。请添加一个名为 jquery(区分大小写)的 ScriptResourceMapping。

我的VS版本是:12.0.30501.00 Update 2。 .NET 框架:4.5.51641 我尝试使用 IE 和 Chrome,使用 jquery-1.8.2.js 和 jquery-2.1.1.js Windows 8.1 企业版。

【问题讨论】:

    标签: asp.net .net


    【解决方案1】:

    删除web.config 中的这一行:

    <add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />
    

    或在您的web.config 上添加此行:

    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
    

    或者在你的global.asax

    ValidationSettings.UnobtrusiveValidationMode = System.Web.UI.UnobtrusiveValidationMode.None
    

    【讨论】:

    • 请解释一下您的解决方案。谢谢。
    【解决方案2】:

    ASP.NET 4.5 及更高版本具有控制客户端验证的不显眼验证。 在你的 web.config &lt;add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" /&gt;

    表示不显眼的验证已开启并将使用 jQuery...您可以通过以下方式添加: 右键单击解决方案探索-> 管理 NuGet。点击浏览并输入“aspnet.scriptmanager.jquery”

    或不使用它(使用 HTML 中的脚本元素通过 JavaScript 进行验证的旧方法) &lt;add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /&gt;

    启用它的好处是它减少了必须生成的 JavaScript 数量。

    【讨论】:

    • 这是最好的答案,因为它显示了如何启用不显眼的验证,而不仅仅是禁用它。也解释了它的意思。赞成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    相关资源
    最近更新 更多