ASP.net MVC 4验证数字是否包含在一组有效值中

本文关键字:一组 有效值 包含 MVC net 验证 是否 数字 ASP | 更新日期: 2023-09-27 18:27:24

我正在尝试为模型中的int值设置一个验证规则。

该值只能是1、2或4。所以我不能使用范围验证规则。我应该如何验证数字是否有效?

我找不到任何东西,除了射程,所以不幸的是,我什么都没有。

ASP.net MVC 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