【问题标题】:Model State Validation in ASP.NET WEBAPI CoreASP.NET WEBAPI Core 中的模型状态验证
【发布时间】:2019-01-12 02:45:16
【问题描述】:

我正在尝试在 ASP.NET WEBAPI Core 中使用模型验证。下面提到的是我的模型中的代码。

[Range(typeof(decimal), "1.0", "90.1")]
public decimal price{ get; set; }

我的理解是,如果我传递任何不在 1.0 - 90.1 之间的值,ModelState.Valid 应该是 false

这是我尝试调用该方法的url,

http://localhost:57270/api/testprice?price=132.7492634

由于我传递的值大于 90,我期待 ModelState.Validfalse。但ModelState.Valid 总是以 true 的形式出现。

我错过了什么吗?请帮忙?

【问题讨论】:

  • [Range(typeof(decimal), 1.0, 90.1)] 呢?
  • @FrankNielsen:感谢您的回复。当我们在 RangeAttribute 中使用 type 时,我们只需要将 min 和 max 值都作为字符串提及。

标签: c# asp.net-core-mvc model-validation


【解决方案1】:

试试这个:

[Range(1.0, 90.1)]
public decimal price{ get; set; }

【讨论】:

  • 杰克,感谢您的回复。我试过这个。它不工作。我仍然得到 ModelState.Valid 为真。
【解决方案2】:

为了其他用户的利益,我发布了这个问题的答案。

为了在 .net core 中获得完整的数据注释功能,我们需要在 startup.cs 文件的 ConfigureServices 函数中添加以下行:

services.AddMvcCore().AddDataAnnotations();

希望对您有所帮助。祝大家有个愉快的一天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2012-05-03
    • 2019-03-16
    • 2018-09-02
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多