【发布时间】:2020-05-20 05:33:07
【问题描述】:
考虑以下控制器操作签名:
[HttpGet]
public IEnumerable<Whatever> Get(DateTime from, DateTime to)
或者
[HttpGet]
public Whatever Get(int amount, SomeUnit unit)
我希望能够对调用者提供的参数进行验证。在这两种情况下,第一个参数中作为有效输入传递的内容取决于第二个参数的值。
到目前为止,我还没有找到解释或示例说明如何使用 ASP.NET Core 3.0 中的验证属性来实现这一点
我看到例如CustomValidationAttribute 允许在方法上使用它。我可以给它一个 IsValid 将委托给它并提供对象和验证上下文的方法:
IsValid(Object, ValidationContext)
我检查了 IsValid 和 ValidationContext 的文档,但找不到任何关于如何访问传递给已验证操作的参数的提示。
在谷歌搜索提示时,我发现了“Pro ASP.NET Web API”HTTP Web Services in ASP.NET”的摘录,它们实现了类似的东西。但摘录在显示代码之前就结束了,我没有那本书(没有'找不到对应的书,但在 ASP.NET Core 上)。
【问题讨论】:
标签: c# asp.net validation asp.net-core asp.net-core-webapi