C# asp.net data annotation setting field to only number 但不是必需的
C# asp.net data annotation setting field to only number but not required
我有一个视图模型 class,我将其设置为在我的项目中使用数据注释进行验证,如下所示:
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid minimum price (e.g. 20.00)")]
public double MinPrice { get; set; }
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid maximum price (e.g. 20.00)")]
public double MaxPrice { get; set; }
我想做的是仅在输入内容时才触发验证,并且该内容不是有效的双数...如果该字段留空我只想忽略它...
我现在的做法是,如果我先输入一些内容,然后尝试将字段留空,验证会触发并说该字段是必需的,这不是我想要的...
我做错了什么?
您应该使用 'RegularExpression' 而不是 'range'。类似于:
[RegularExpression(@"^-?[0-9]\d{0,2}(\.\d{0,1})?$", ErrorMessage = "Invalid value")]
[RegularExpression(@"-?\d+(?:\.\d+)?", ErrorMessage = "Please enter valid minimum price (e.g. 20.00)")]
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid minimum price (e.g. 20.00)")]
public double? dub { get; set; }
将您的模型更改为双倍?如果您要允许空值
我有一个视图模型 class,我将其设置为在我的项目中使用数据注释进行验证,如下所示:
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid minimum price (e.g. 20.00)")]
public double MinPrice { get; set; }
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid maximum price (e.g. 20.00)")]
public double MaxPrice { get; set; }
我想做的是仅在输入内容时才触发验证,并且该内容不是有效的双数...如果该字段留空我只想忽略它...
我现在的做法是,如果我先输入一些内容,然后尝试将字段留空,验证会触发并说该字段是必需的,这不是我想要的...
我做错了什么?
您应该使用 'RegularExpression' 而不是 'range'。类似于:
[RegularExpression(@"^-?[0-9]\d{0,2}(\.\d{0,1})?$", ErrorMessage = "Invalid value")]
[RegularExpression(@"-?\d+(?:\.\d+)?", ErrorMessage = "Please enter valid minimum price (e.g. 20.00)")]
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid minimum price (e.g. 20.00)")]
public double? dub { get; set; }
将您的模型更改为双倍?如果您要允许空值