Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC验证-[Required]属性引发jquery JSON.parse异常_Jquery_Asp.net Mvc 4_Validation - Fatal编程技术网

MVC验证-[Required]属性引发jquery JSON.parse异常

MVC验证-[Required]属性引发jquery JSON.parse异常,jquery,asp.net-mvc-4,validation,Jquery,Asp.net Mvc 4,Validation,我的视图中有以下HTML: @model PatientLookupModel @if (Model.IsModelInvalid) { @Html.ValidationSummary(false, Model.Resources.InvalidFormMessage) } @using (Html.BeginForm("Lookup", "Patient", FormMethod.Post, new { role = "form" })) { @Html.Label(Mode

我的视图中有以下HTML:

@model PatientLookupModel
@if (Model.IsModelInvalid)
{
    @Html.ValidationSummary(false, Model.Resources.InvalidFormMessage)
}

@using (Html.BeginForm("Lookup", "Patient", FormMethod.Post, new { role = "form" }))
{
    @Html.Label(Model.Resources.PatientFirstNameLabel)
    @Html.TextBoxFor(m => m.PatientFirstName, new { @class = "form-control" })
}
我的模型如下所示:

using RESOURCES = AppResources.Resources;    
namespace Models
{
    public class PatientLookupModel
    {
        [Required(ErrorMessageResourceType = typeof(RESOURCES), ErrorMessageResourceName = "Patient_Lookup_PatientFirstNameRequiredMessage")]
        public string PatientFirstName { get; set; }
    }
}
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/lib/jquery-{version}.js",
                    "~/scripts/lib/jquery.unobtrusive*",
                    "~/Scripts/lib/jquery.validate*",
                    "~/Scripts/lib/jquery.maskedinput.js"));
我的BundleConfig如下所示:

using RESOURCES = AppResources.Resources;    
namespace Models
{
    public class PatientLookupModel
    {
        [Required(ErrorMessageResourceType = typeof(RESOURCES), ErrorMessageResourceName = "Patient_Lookup_PatientFirstNameRequiredMessage")]
        public string PatientFirstName { get; set; }
    }
}
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/lib/jquery-{version}.js",
                    "~/scripts/lib/jquery.unobtrusive*",
                    "~/Scripts/lib/jquery.validate*",
                    "~/Scripts/lib/jquery.maskedinput.js"));
表单本身按预期工作。如果未输入第一个名称,则重新加载页面并填充验证摘要。问题是,当您在“名字”输入中键入某个内容,然后它失去焦点时,浏览器控制台中会引发异常:

数据
未定义


有什么想法吗?

删除对
jquery.unobtrusive ajax.js
jquery.validate*
的引用实际上是我想要做的。出于某种原因(可能是@ShukhratRaimov确定的原因),当我使用jquery1.11.1时,客户端验证会中断。实际上,我甚至不希望客户端验证—我希望应用程序发回并显示模型错误。

看看这篇文章,让我知道它是否有用。@ShukhratRaimov:我以前曾尝试加载jquery的早期版本(我使用的是1.11.1),并注意到它有不同的行为。使用1.11.1,它实际上会回发,但是<1.9版本只会对元素应用一个错误类,并将它们置于焦点。我不确定这种行为是否可以接受。是的,Jquery.validate与Microsofts的低调验证冲突。抢手货