为什么我的程序接受带逗号(,)的双数?

时间:2018-08-23 14:09:49

标签: c# asp.net-mvc

[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个),则在逗号后面会很高兴地接受它作为有效输入。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

默认情况下,MVC使用点作为分隔符,如果要与逗号一起使用,建议阅读以下问题: Accept comma and dot as decimal separator

如果您想提高验证效率,建议您再阅读一个问题: Int or Number DataType for DataAnnotation validation attribute