2017-01-23 35 views
4

VS 2015年自動生成以下代碼:ASP.NET Core Web API:爲什麼需要在Get請求中使用ModelState驗證?

// 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驗證的意義呢?

回答

0

我假設你使用了Web Api模板。由於您沒有從「空白」模板開始,所以VS生成的代碼是Microsoft團隊認爲的「良好實踐」。

問題是,如果您希望某個字段包含電子郵件,需要另一個字段等等,您可能會用數據註釋標記它們。現在,在你的方法被執行之前還有一些額外的檢查(對於一個簡單的int來說是不必要的,但這意味着你可能會改變參數)。有關更多信息,請參閱this文章。

如果您發現這些添加不必要,您可以隨時從Empty模板啓動項目。

相關問題