WebForms不显眼的验证模式

时间:2014-05-30 06:58:39

标签: asp.net .net

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

1)创建一个ASP.NET Empty应用程序(作为WebApplication) 2)在WebApplication中添加Web表单 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(object sender,EventArgs e)         {             string text = A.Text +“”+ B.Text;         }

10)运行程序。

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

ASP.NET 4.5及更高版本具有不显眼的验证,可以控制客户端验证。 在你的web.config中    <add key="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />

表示不引人注意的验证已启用并将使用jQuery ...您可以添加: 右键单击解决方案探索 - >管理NuGet。单击Browse并键入“aspnet.scriptmanager.jquery”

或将其关闭(使用HTML中的脚本元素通过JavaScript进行验证的旧方法)     <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />

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