MVC 验证 - [必需] 属性抛出 jquery JSON.parse 异常
Posted
技术标签:
【中文标题】MVC 验证 - [必需] 属性抛出 jquery JSON.parse 异常【英文标题】:MVC validation - [Required] attribute throwing jquery JSON.parse exception 【发布时间】:2014-10-30 14:31:00 【问题描述】:我的视图中有以下 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"));
表单本身按预期工作。如果未输入名字,页面将重新加载并填充验证摘要。问题是,当您在名字输入中键入内容然后它失去焦点时,浏览器控制台中会引发异常:
data
未定义。
有什么想法吗?
【问题讨论】:
***.com/a/14822755/1893261 看看这篇文章,如果有帮助请告诉我。 @ShukhratRaimov:我之前曾尝试加载早期版本的 jquery(我使用的是 1.11.1)并注意到它具有不同的行为。使用 1.11.1,它实际上会回发,但版本 【参考方案1】:删除对jquery.unobtrusive-ajax.js
和jquery.validate*
的引用实际上是我想要做的。由于某种原因(可能是@ShukhratRaimov 确定的原因),当我使用 jquery 1.11.1 时,客户端验证中断。实际上,我什至不想要客户端验证 - 我希望应用回发并显示模型错误。
【讨论】:
是的,Jquery.validate 与 Microsoft 不显眼的验证相冲突。很好的收获。以上是关于MVC 验证 - [必需] 属性抛出 jquery JSON.parse 异常的主要内容,如果未能解决你的问题,请参考以下文章
必填字段验证在 JQuery Popup MVC 4 中不起作用
必填字段验证在 JQuery Popup MVC 4 中不起作用
必填字段验证在 JQuery Popup MVC 4 中不起作用