ASP.net MVC 4验证数字是否包含在一组有效值中
本文关键字:一组 有效值 包含 MVC net 验证 是否 数字 ASP | 更新日期: 2023-09-27 18:27:24
我正在尝试为模型中的int值设置一个验证规则。
该值只能是1、2或4。所以我不能使用范围验证规则。我应该如何验证数字是否有效?
我找不到任何东西,除了射程,所以不幸的是,我什么都没有。
类似的东西
[RegularExpression("[124]", ErrorMessage = "Value must be 1, 2 or 4")]
public int Value{ get; set; }
具有一组有效值的RegularExpression
验证器[124]是显而易见的选项。
然而,我发现了一个有趣的替代方案,它的性能肯定比RegularExpression验证器更好。其想法是使用具有整数有效值的EnumDataType
验证器:
[EnumDataType(typeof(ValidValues), ErrorMessage = "Valid values are 1,2,4")]
public int ReqValue { get; set; }
public enum ValidValues
{
First = 1,
Second = 2,
Fourth = 4
}
将此代码添加到您的项目中:获取;键";对于控制器中的强类型模型
然后添加一个执行验证的方法,例如void Validate(YourModelType model)
。
最后,在您的POST操作中,放入如下内容:
Validate(model);
if (ModelState.IsValid) {
//valid, do whatever actions you need
return RedirectToAction("whatever");
}
return View(model); //show the page again