MVC4 FoolProof 数据注释 - 如何检查该字段不等于零?
MVC4 FoolProof Data Annotations - How to check that field does not equal to zero?
我正在尝试使用 MVC Foolproof 库来验证我的模型并分别显示错误消息。但是,当我使用 Foolproof 验证时,在单击提交按钮时,即使是常规验证也没有显示。
我的要求是我有一个数字文本框,它不能为空,否则 zero.The 文本框值是根据从上一个下拉列表中选择的值计算的。
下面是带有数据注释的模型中两个字段的代码,
using Foolproof;
[Required(ErrorMessage = "Fee is not given", AllowEmptyStrings = false)]
[NotEqualTo("0",ErrorMessage="Duration cannot be zero")]
public Nullable<int> Duration { get; set; }
Html 文本框
@Html.TextBoxFor(m => m.MultiCourse.Duration,
new { @class = "form-control", @placeholder = "Course Duration", @id = "txtCourseDuration" })
@Html.ValidationMessageFor(m => m.MultiCourse.Duration)
捆绑配置class
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/plugins/jQueryVal/jquery.unobtrusive*",
"~/plugins/jQueryVal/jquery.validate*",
"~/plugins/jQueryVal/mvcfoolproof.unobtrusive*"));
万无一失的 [NotEqualTo]
属性将 属性 的值与另一个 属性 的值进行比较。在您的情况下,这会引发异常,因为您的模型不(并且不能)包含名为 0
.
的 属性
如果只允许正值,那么您可以使用 [Range]
属性
[Range(1, int.MaxValue, ErrorMessage = "Duration must be greater than zero")]
public Nullable<int> Duration { get; set; }
或者,如果允许负值,您可以在视图模型中包含一个 属性(例如)int InvalidDuration
并使用
[NotEqualTo("InvalidDuration", ErrorMessage="Duration cannot be zero")]
public Nullable<int> Duration { get; set; }
并在视图中包含一个隐藏的输入
@Html.HiddenFor(m => m.InvalidDuration)
我正在尝试使用 MVC Foolproof 库来验证我的模型并分别显示错误消息。但是,当我使用 Foolproof 验证时,在单击提交按钮时,即使是常规验证也没有显示。
我的要求是我有一个数字文本框,它不能为空,否则 zero.The 文本框值是根据从上一个下拉列表中选择的值计算的。
下面是带有数据注释的模型中两个字段的代码,
using Foolproof;
[Required(ErrorMessage = "Fee is not given", AllowEmptyStrings = false)]
[NotEqualTo("0",ErrorMessage="Duration cannot be zero")]
public Nullable<int> Duration { get; set; }
Html 文本框
@Html.TextBoxFor(m => m.MultiCourse.Duration,
new { @class = "form-control", @placeholder = "Course Duration", @id = "txtCourseDuration" })
@Html.ValidationMessageFor(m => m.MultiCourse.Duration)
捆绑配置class
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/plugins/jQueryVal/jquery.unobtrusive*",
"~/plugins/jQueryVal/jquery.validate*",
"~/plugins/jQueryVal/mvcfoolproof.unobtrusive*"));
万无一失的 [NotEqualTo]
属性将 属性 的值与另一个 属性 的值进行比较。在您的情况下,这会引发异常,因为您的模型不(并且不能)包含名为 0
.
如果只允许正值,那么您可以使用 [Range]
属性
[Range(1, int.MaxValue, ErrorMessage = "Duration must be greater than zero")]
public Nullable<int> Duration { get; set; }
或者,如果允许负值,您可以在视图模型中包含一个 属性(例如)int InvalidDuration
并使用
[NotEqualTo("InvalidDuration", ErrorMessage="Duration cannot be zero")]
public Nullable<int> Duration { get; set; }
并在视图中包含一个隐藏的输入
@Html.HiddenFor(m => m.InvalidDuration)