[英]Validating a datamodel
我創建了一個webAPI, datamodel
如下所示:
{
"name" : "",
"age" : ""
}
由於這是我創建的第三方API,因此將有許多其他開發人員嘗試訪問它。 他們常犯的錯誤之一是,他們有時會忘記datamodel
中的某些字段。 例如,他們可能根本忘記輸入age
值。
因此,他們只會發送name
,不會發送age
,如下所示。
{
"name" : ""
}
如何從控制器進行驗證檢查,以查看開發人員是否忘記了在JSON中輸入屬性age
?
我嘗試檢查null,但沒有用。
public async Task<IActionResult> SaveStudent([FromBody] Student stu)
{
if(stu.age == null) { DISPLAY ERROR } // This doesn't work
...
}
與大多數Microsoft Web框架一樣,您可以使用DataAnnotatons ,檢查MSDN網站,可以找到有關如何在Json Post中使用DataAnnotations的示例,並可以使用屬性為傳入模型指定Range,Required等,
您正在尋找模型驗證之類的東西。
public async Task<IActionResult> SaveStudent([FromBody] Student stu)
{
if (!context.ModelState.IsValid)
{
context.Result = new BadRequestObjectResult(context.ModelState);
}
...
}
您的模型類應如下所示:
public class Student
{
[Required]
public string Name {get; set;}
[Required]
public int Age {get; set;}
}
然后在控制器中:
public class StudentController : Controller
{
public async Task<IActionResult> SaveStudent([FromBody] Student student)
{
if (ModelState.IsValid)
{
_dbContext.Students.Add(student);
await _dbContext.SaveChangesAsync();
return Json(true)
}
return Json(false);
}
}
現在,您可以基於SaveStudent()
方法返回的輸出在客戶端顯示自定義錯誤或成功消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.