我在视图中有以下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
未定义。
有什么想法吗?
答案 0 :(得分:1)
删除对jquery.unobtrusive-ajax.js
和jquery.validate*
的引用实际上就是我想要做的。出于某种原因(也许是由@ShukhratRaimov确定的原因),当我使用jquery 1.11.1时,客户端验证会中断。我实际上甚至不想要客户端验证 - 我希望应用程序回发并显示模型错误。