Asp.net mvc 4 asp.net mvc4客户端验证不需要';行不通

Asp.net mvc 4 asp.net mvc4客户端验证不需要';行不通,asp.net-mvc-4,jquery-validate,unobtrusive-validation,Asp.net Mvc 4,Jquery Validate,Unobtrusive Validation,我在配置中启用了clientside验证,我还包括了相应的jquery文件以进行验证,但每次提交时,页面都会在不进行clientside验证的情况下发布到服务器。我已经粘贴了在下面的源代码中生成的标记。它似乎正在生成数据验证消息。只是不知何故没有触发验证 我正在使用Nuget上提供的BeginCollection库来构建我的动态表单。这可能是我的客户端验证不起作用的原因吗 <input class="text-box single-line valid" data-val="tru

我在配置中启用了clientside验证,我还包括了相应的jquery文件以进行验证,但每次提交时,页面都会在不进行clientside验证的情况下发布到服务器。我已经粘贴了在下面的源代码中生成的标记。它似乎正在生成数据验证消息。只是不知何故没有触发验证

我正在使用Nuget上提供的BeginCollection库来构建我的动态表单。这可能是我的客户端验证不起作用的原因吗

    <input class="text-box single-line valid" data-val="true" 
data-val-number="The field DaysAbsent must be a number." 
data-val-required="The DaysAbsent field is required." 
id="students_471abdc8-b190-42da-9f72-ed30a1e33b10__DaysAbsent" 
name="students[471abdc8-b190-42da-9f72-ed30a1e33b10].DaysAbsent" 
type="text" value="0">

BundleConfig.cs:

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

您提到了动态表单,所以如果动态加载输入,jquery.validate不知道它们在那里。您必须“刷新”表单验证以验证新输入

添加新输入后,使用以下代码“刷新”表单的验证:

$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($('form'));

这是什么
BeginCollection
库?从没听说过。但最重要的是,它是服务器端还是客户端库?是否包含Microsoft的
不引人注目的验证
?darin begincollection是一个服务器端库。这就是上面长长的Id和名字的来源。斯帕基,是的,据我所知。我正在编辑上面的代码。
~/Scripts/jquery.validate*
应该在
~/Scripts/jquery.unobtrusive
            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));
$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($('form'));