用于DataAnnotationvalidation属性的Int或Number DataType
在我的MVC3项目中,我存储了足球/足球/曲棍球/ …运动游戏的分数预测。 所以我的预测课程的一个属性如下所示:
[Range(0, 15, ErrorMessage = "Can only be between 0 .. 15")] [StringLength(2, ErrorMessage = "Max 2 digits")] [Remote("PredictionOK", "Predict", ErrorMessage = "Prediction can only be a number in range 0 .. 15")] public int? HomeTeamPrediction { get; set; }
现在,我还需要更改数据types的错误消息,在我的情况下, int
。 有一些默认使用 – “HomeTeamPrediction必须是一个数字”。 需要find一种方法来改变这个错误信息。 这个validation消息似乎也要预测远程validation。
我试过[DataType]
属性,但这似乎不是在system.componentmodel.dataannotations.datatype
枚举中的普通数字。
对于任何数字validation,您必须根据您的要求使用不同的范围validation:
整数
[Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer Number")]
为浮动
[Range(0, float.MaxValue, ErrorMessage = "Please enter valid float Number")]
双倍
[Range(0, double.MaxValue, ErrorMessage = "Please enter valid doubleNumber")]
尝试正则expression式
[RegularExpression("([0-9]+)")] // for 0-inf or [RegularExpression("([1-9][0-9]*)")] // for 1-inf
希望它有助于:D
在数据注释中使用正则expression式
[RegularExpression("([0-9]+)", ErrorMessage = "Please enter valid Number")] public int MaxJsonLength { get; set; }
试试这个属性:
public class NumericAttribute : ValidationAttribute, IClientValidatable { public override bool IsValid(object value) { return value.ToString().All(c => (c >= '0' && c <= '9') || c == '-' || c == ' '); } public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { var rule = new ModelClientValidationRule { ErrorMessage = FormatErrorMessage(metadata.DisplayName), ValidationType = "numeric" }; yield return rule; } }
而且你还必须在validator插件中注册属性:
if($.validator){ $.validator.unobtrusive.adapters.add( 'numeric', [], function (options) { options.rules['numeric'] = options.params; options.messages['numeric'] = options.message; } ); }
public class IsNumericAttribute : ValidationAttribute { protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null) { decimal val; var isNumeric = decimal.TryParse(value.ToString(), out val); if (!isNumeric) { return new ValidationResult("Must be numeric"); } } return ValidationResult.Success; } }
- entity framework4.1 InverseProperty属性
- Validator.TryValidateObject不validationRangeAttribute
- 如何使用DataAnnotations在ASP.NET MVC 2中处理Booleans / CheckBoxes?
- MVC模型要求为true
- 为什么我不能引用System.ComponentModel.DataAnnotations?
- 使用AngularJS的ASP.NET MVCvalidation表单
- 如何创build自定义数据注释validation器
- “创build时需要Id字段”validation消息; Id未设置为
- ASP.NET MVC:通过DataAnnotation进行自定义validation