MVC验证 - [必需]属性抛出jquery JSON.parse异常

时间:2014-09-05 15:26:10

标签: 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(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; }
    }
}

我的BundleConfig看起来像这样:

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"));

表单本身按预期工作。如果未输入第一个名称,则会重新加载页面并填充验证摘要。问题是,当您在名字输入中键入内容然后失去焦点时,浏览器控制台会抛出异常:

enter image description here

data未定义。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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