[Validator(typeof(foo))]
public class foo
{
public double? bar { get; set; }
}
public class fooValidator : AbstractValidator<foo>
{
public fooValidator()
{
RuleFor(x => x.bar)
.NotEmpty()
.GreaterThan(0d);
}
}
然后我使用以下命令显示bar
的输入字段:
@Html.EditorFor(model => model.Bar, new { @class = "form-control", htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Bar)
但是,这给我带来了一些莫名其妙的行为。
如果我输入带逗号的数字,例如:1,1,则会显示错误消息。 但是,如果该数字只有三个,并且只有三个(例如19,800个),则在逗号后面会很高兴地接受它作为有效输入。
为什么会这样?
答案 0 :(得分:0)
默认情况下,MVC使用点作为分隔符,如果要与逗号一起使用,建议阅读以下问题: Accept comma and dot as decimal separator
如果您想提高验证效率,建议您再阅读一个问题: Int or Number DataType for DataAnnotation validation attribute