【问题标题】:ASP.NET Core Web API: Why need ModelState validation in Get request?ASP.NET Core Web API:为什么需要在 Get 请求中验证 ModelState?
【发布时间】:2017-01-24 19:44:04
【问题描述】:

VS 2015 自动生成如下代码:

// GET: api/Companies/5
[HttpGet("{id}")]
public async Task<IActionResult> GetCompany([FromRoute] int id)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    Company company = await _context.Companies.SingleOrDefaultAsync(m => m.Id == id);

    if (company == null)
    {
        return NotFound();
    }

    return Ok(company);
}

这里的 ModelState 验证有什么意义?

【问题讨论】:

    标签: asp.net-web-api asp.net-core


    【解决方案1】:

    我假设您使用了 Web Api 模板。由于您没有从“空”模板开始,VS 生成的代码被微软团队视为“良好实践”。

    关键是,如果您希望某个字段包含电子邮件,另一个字段是必需的,等等,您可能已经用数据注释标记了它们。现在,在你的方法被执行之前有一个额外的检查(对于一个简单的 int 来说是不必要的,但它暗示你可能会改变参数)。查看this文章了解更多信息。

    如果您觉得这些添加没有必要,您可以随时从 Empty 模板开始您的项目。

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 2019-08-03
      • 2019-05-17
      • 2022-01-14
      • 2019-09-04
      • 1970-01-01
      • 2021-08-11
      相关资源
      最近更新 更多