中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#WebAPI如何實現數據驗證

發布時間:2024-11-24 18:30:30 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在C# Web API中實現數據驗證,通常有以下幾種方法:

  1. 使用Model Validation(模型驗證)

Model Validation是一種內置的數據驗證方法,它允許你在實體類的屬性上添加驗證屬性,例如[Required]、[StringLength]等。當API接收到請求時,會自動進行模型驗證。

首先,在實體類中添加驗證屬性:

public class User
{
    [Required(ErrorMessage = "用戶名不能為空")]
    [StringLength(100, ErrorMessage = "用戶名長度不能超過100個字符")]
    public string UserName { get; set; }

    [Required(ErrorMessage = "密碼不能為空")]
    [StringLength(100, ErrorMessage = "密碼長度不能超過100個字符")]
    public string Password { get; set; }
}

然后,在API控制器中使用[ApiController]和[HttpPost]屬性:

[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
    [HttpPost]
    public IActionResult Create([FromBody] User user)
    {
        if (ModelState.IsValid)
        {
            // 保存用戶信息到數據庫
            return Ok();
        }
        else
        {
            // 返回驗證錯誤信息
            return BadRequest(ModelState);
        }
    }
}
  1. 使用Data Annotations(數據注解)

Data Annotations是另一種內置的數據驗證方法,它允許你在實體類的屬性上添加驗證屬性,例如[Required]、[StringLength]等。與Model Validation類似,當API接收到請求時,會自動進行數據驗證。

首先,在實體類中添加驗證屬性:

public class User
{
    [Required(ErrorMessage = "用戶名不能為空")]
    [StringLength(100, ErrorMessage = "用戶名長度不能超過100個字符")]
    public string UserName { get; set; }

    [Required(ErrorMessage = "密碼不能為空")]
    [StringLength(100, ErrorMessage = "密碼長度不能超過100個字符")]
    public string Password { get; set; }
}

然后,在API控制器中使用[ApiController]和[HttpPost]屬性:

[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
    [HttpPost]
    public IActionResult Create([FromBody] User user)
    {
        if (ModelState.IsValid)
        {
            // 保存用戶信息到數據庫
            return Ok();
        }
        else
        {
            // 返回驗證錯誤信息
            return BadRequest(ModelState);
        }
    }
}
  1. 使用IValidatableObject接口

IValidatableObject接口允許你在實體類中實現自定義的驗證邏輯。首先,讓你的實體類實現IValidatableObject接口,并添加Validate方法:

public class User : IValidatableObject
{
    [Required(ErrorMessage = "用戶名不能為空")]
    [StringLength(100, ErrorMessage = "用戶名長度不能超過100個字符")]
    public string UserName { get; set; }

    [Required(ErrorMessage = "密碼不能為空")]
    [StringLength(100, ErrorMessage = "密碼長度不能超過100個字符")]
    public string Password { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        // 添加自定義驗證邏輯
        if (UserName == "admin" && Password == "password")
        {
            yield return new ValidationResult("管理員用戶名密碼不能相同");
        }
    }
}

然后,在API控制器中使用[ApiController]和[HttpPost]屬性:

[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
    [HttpPost]
    public IActionResult Create([FromBody] User user)
    {
        if (ModelState.IsValid)
        {
            // 保存用戶信息到數據庫
            return Ok();
        }
        else
        {
            // 返回驗證錯誤信息
            return BadRequest(ModelState);
        }
    }
}

這些方法可以根據你的需求進行組合使用,以實現更復雜的數據驗證邏輯。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤峰县| 宜黄县| 师宗县| 赤壁市| 辽源市| 瑞安市| 灵璧县| 中牟县| 石台县| 长沙市| 平原县| 航空| 景东| 开封市| 秀山| 濉溪县| 怀仁县| 米泉市| 孟津县| 于田县| 峡江县| 炉霍县| 元氏县| 钟祥市| 大足县| 托里县| 循化| 龙江县| 启东市| 治县。| 高青县| 柳江县| 罗田县| 华安县| 开原市| 浦江县| 嘉鱼县| 通榆县| 双辽市| 台南县| 横山县|