我有一个变量,我只想在其中允许某些值。
[Required(ErrorMessage = "Category must be provided")]
[Range(2, 4)]
public int Category { get; set; }
我想在该变量中允许更多的值,例如6和10。我该怎么做?是否有一个属性可以指定允许的特定值?
答案 0 :(得分:1)
您可以创建一个自定义验证属性。例如:
using System;
using System.Collections.Generic;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace MyProject.Models.Validation
{
public class SpecialCategoryAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if(value == 6 || value == 10)
{
return ValidationResult.Success;
}
return new ValidationResult("Fail");
}
}
}
但是似乎属性之间存在冲突:Range
允许2-> 4和SpecialCategory
仅允许6和10。因此,您的模型并不总是有效的。
我认为您可以删除Range
并仅使用SpecialCategory
,并将其值设置为2-> 4以及6和10。
答案 1 :(得分:1)
选项1
在表单提交处理程序或向上/向下键处理程序上使用JavaScript验证
选项2
像这样使用RegularExpression数据注释
[RegularExpression("[2|6]", ErrorMessage = "Enter 2 or 6 only")]
选项3
使用自定义验证器
答案 2 :(得分:0)
q1 = Queue(maxsize = 0)
q2 = Queue(maxsize = 0)
.
.
qn = Queue(maxsize = 0)
答案 3 :(得分:0)
[RegularExpression("^(2|4|6|10)$")]
public int 类别 { get;放; }