asp.net-core - 基于属性验证 IEnumerable 参数 URL 中的项目数
问题描述
我正在寻找类似于RangeAttribute的东西,它指定数据字段值的数字范围约束。
我希望根据 IEnumerable 参数 URL 中的项目数进行验证。
例如
[Route("foo")]
[HttpGet]
public ActionResult<SomeResponse>GetFoos([FromQuery] idList idList)
{
// Validate model and get stuff
}
public class IdList
{
// Obviously, the Range attribute is wrong here
[BindRequired, Range(1, 10, ErrorMessage = "Expected 1 to 10 ids.")]
public List<string> Id { get; set; }
}
使用 .NET Core 3.1
解决方案
您可以使用:
[Required, MinLength(2, ErrorMessage = "Pick at least 2 items."), MaxLength(4, ErrorMessage = "Pick at most 4 items.")]
.
或者您可以创建自己的自定义模型验证属性和自定义客户端验证。
推荐阅读
- javascript - 为什么我的引导 Javascript 不起作用(wordpress)
- php - PHP NumberFormatter parseCurrency 返回 false
- pandas - 具有相同行名的数据进入列
- flutter - 如何在颤动中制作具有圆边的按钮?
- winforms - 使用 WinForms 应用程序的 OAuth/OIDC SSO 的最佳实践?
- php - 不同目录中类文件的php错误日志
- terraform - 无法让 global_parameter 与 Terraform azurerm_data_factory 一起使用
- bash - 如何从长时间运行的命令中获取单行输入,然后将其杀死?
- javascript - 为什么删除特殊字符时不删除电报表情符号
- r - 如何以可以在 R markdown 中编织的方式将 sav 文件读入 r