3 回答
TA贡献1851条经验 获得超3个赞
首先,您应该检查请求正文中的值是否正确填充。
看看DataAnnotations。您可以使用注释来指定模型中的必需、最小和最大长度等属性。
这是关于如何定义 UserData 类所需的 Name 属性的示例
public class UserData
{
[Required]
public string Name { get; set; }
}
如果请求模型不满足 UserData 类 DataAnnotations 上设置的指定规则,则上下文 ModelState 将设置为 false 并包含 DataAnnotations 错误。这可用于确定当前请求是否为错误请求并从中返回正确的 http 状态代码。
[HttpPost("data/save")]
public async Task<IActionResult> SaveData([FromBody] List<UserData> data)
{
if (!ModelState.IsValid)
return BadRequest(ModelState); //will return a 400 code
...
然后关于 SaveData 方法。捕获控制器中的异常并从那里返回正确的状态代码
[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贡献1802条经验 获得超4个赞
您可以创建一个实体并返回它
public class BaseResult{
public bool Result{get;set;}
public string Errors{get;set;}
}
或仅
return Ok( new { result = dataSaved , error= exception.Message});
TA贡献1841条经验 获得超3个赞
您可以创建一个实体并返回它
public class BaseResult{
public bool Result{get;set;}
public string Errors{get;set;}
}
或仅
return Ok( new { result = dataSaved , error= exception.Message});
- 3 回答
- 0 关注
- 227 浏览
添加回答
举报