ASP.NET Core Web API:为什么需要在Get请求中进行ModelState验证?

时间:2017-01-23 09:59:37

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

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验证有什么意义?

1 个答案:

答案 0 :(得分:0)

我假设您使用了Web Api模板。因为你没有从&#34;空&#34;模板,VS生成的代码,Microsoft团队认为&#34;良好实践&#34;。

关键是,如果您希望某个字段包含电子邮件,需要另一个字段,依此类推,您可能已使用数据注释标记了这些字段。现在,在执行方法之前还要检查那些(对于简单的int来说是不必要的,但它暗示你可能会改变参数)。查看this文章了解详情。

如果您发现不需要这些添加,您可以随时从空模板启动项目。