在ASP.NETMVC应用程序中,模型(Model)扮演着数据结构的表示角色。本文将探讨如何在ASP.NETWeb API应用程序中对模型类应用数据注解技术进行验证。
在之前的ASP.NETWeb API系列文章中,已经创建了一个执行所有CRUD(创建、检索、更新、删除)操作的应用程序。接下来,将使用相同的域模型类“Student.cs”,并使用数据注解方法对其进行验证。为了更好地理解并应用更多的验证规则,对其进行了一些修改。以下是模型类:
public class Student
{
[Range(1, 500)]
public int StudentID { get; set; }
[Required] [MaxLength(10)]
public string FirstName { get; set; }
public string LastName { get; set; }
}
在模型类属性上应用了一些验证,就像数据库表字段有关联的验证规则一样。使用System.ComponentModel.DataAnnotations命名空间中的属性来对模型属性进行注解。模型类“Student”有以下验证规则:
将在控制器类“StudentController”中检查模型的有效性是否符合定义的验证规则。以下是控制器类的代码示例:
public class StudentsController : ApiController
{
public HttpResponseMessage Post(Student student)
{
if (ModelState.IsValid)
{
// 有效场景代码...
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
}
当客户端发送POST请求(JSON格式)时,它将被转换为Student对象实例,然后该实例将根据模型类中定义的规则进行验证。在上述代码示例中,第5行,Student实例的状态被验证,并相应地生成响应。假设依次向ASP.NETWeb API服务发布以下JSON:
{
"StudentID": 942,
"FirstName": "Imran",
"LastName": "Ghani"
}
{
"StudentID": 100,
"FirstName": "ImraaanAbdul",
"LastName": "Ghani"
}
{
"StudentID": 101,
"FirstName": "Imran",
"LastName": "Ghani"
}
JSON表示1和2将返回消息“Bad Request....Request is Invalid....”,因为:
JSON表示3是有效的,将返回状态码200的响应。