3 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,您應(yīng)該檢查請(qǐng)求正文中的值是否正確填充。
看看DataAnnotations。您可以使用注釋來指定模型中的必需、最小和最大長度等屬性。
這是關(guān)于如何定義 UserData 類所需的 Name 屬性的示例
public class UserData
{
[Required]
public string Name { get; set; }
}
如果請(qǐng)求模型不滿足 UserData 類 DataAnnotations 上設(shè)置的指定規(guī)則,則上下文 ModelState 將設(shè)置為 false 并包含 DataAnnotations 錯(cuò)誤。這可用于確定當(dāng)前請(qǐng)求是否為錯(cuò)誤請(qǐng)求并從中返回正確的 http 狀態(tài)代碼。
[HttpPost("data/save")]
public async Task<IActionResult> SaveData([FromBody] List<UserData> data)
{
if (!ModelState.IsValid)
return BadRequest(ModelState); //will return a 400 code
...
然后關(guān)于 SaveData 方法。捕獲控制器中的異常并從那里返回正確的狀態(tài)代碼
[HttpPost("data/save")]
public async Task<IActionResult> SaveData([FromBody] List<UserData> data)
{
if (!ModelState.IsValid)
return BadRequest(ModelState); //400 status code
try
{
SaveData(data);
}
catch(Exception e)
{
return InternalServerError(e); //500 status code
}
string someDataToReturn = string.Empty;
return Ok(someDataToReturn ); //200 status code
}
public void SaveData(List<UserData> data)
{
foreach (var set in data)
{
//creating query etc
_db.Execute(query);
}
}

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以創(chuàng)建一個(gè)實(shí)體并返回它
public class BaseResult{
public bool Result{get;set;}
public string Errors{get;set;}
}
或僅
return Ok( new { result = dataSaved , error= exception.Message});

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以創(chuàng)建一個(gè)實(shí)體并返回它
public class BaseResult{
public bool Result{get;set;}
public string Errors{get;set;}
}
或僅
return Ok( new { result = dataSaved , error= exception.Message});
- 3 回答
- 0 關(guān)注
- 254 瀏覽
添加回答
舉報(bào)