<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      blender模型下載

      blender模型下載https://www.blender-3d.cn/ Blender3D模型庫

      [.NET] 使用ValidationContext快速進行模型資料的驗證

      在進行WebAPI功能開發的時候,一般傳統的驗證資料是否合法的方式,都是透過if/else的方式進行判斷
      若是使用ValidationContext,就可以省去很多自行撰寫程式碼的工作

      要使用ValidationContext的驗證方式很簡單,我先用一個簡單的例子來說明就可以呈現所需要的結果

      1.首先先在專案中建立一個新的模型檔案,并在模型檔案中加入下面的程式碼

      public class ValidModels
      {
          /// <summary>
          /// 輸入資料的模型
          /// </summary>
          public class ValidInfoQuery
          {
              [Required]
              public string Name { get; set; }
              public string Tel { get; set; }
              public string Address { get; set; }
              [Required]
              [Range(1, 130)]
              public int Age { get; set; }
              [Required]
              public DateTime Birthday { get; set; }
          }
      
          /// <summary>
          /// 回傳驗證結果的模型
          /// </summary>
          public class ValidInfoResult
          {
              public bool IsValid { get; set; }
              public List<ValidItem> List { get; set; }
              public class ValidItem
              {
                  public IEnumerable<string> Field { get; set; }
                  public string Message { get; set; }
              }
          }
      }
      

        

      在這個模型中,我們定義了要輸入的資料模型,以及要回傳的模型定義,在輸入的模型ValidInfoQuery中,特別在"Name"、"Age"、"Birthday"三個欄位中,加上[Required]的屬性。并且在"Age"的欄位中,加入[Range(1, 130)]的屬性,代表Age的合法值在1到130之間

      2.接著加入一個新的控制器"ValidController.cs",加入一個POST的方法,并將剛剛新增的模型,分別放入Input以及Output的參數

      public class ValidController : ApiController
      {
          /// <summary>
          /// 執行資料寫入的Post動作
          /// </summary>
          /// <param name="query"></param>
          public Models.ValidModels.ValidInfoResult Post(Models.ValidModels.ValidInfoQuery query)
          {
      
          }
      }
      

        3.一般傳統進行輸入資料驗證的方式,會采用下面的方式進行驗證

      // 傳統欄位驗證的寫法
      
      // 驗證Name欄位
      if (string.IsNullOrEmpty(query.Name))
      {
          result.IsValid = false;
          result.List.Add(new Models.ValidModels.ValidInfoResult.ValidItem()
          {
              Field = new List<string> { "Name" },
              Message = "Name欄位必填"
          });
      }
      
      // 驗證Age欄位
      if (query.Age > 130 || query.Age < 1)
      {
          result.IsValid = false;
          result.List.Add(new Models.ValidModels.ValidInfoResult.ValidItem()
          {
              Field = new List<string> { "Age" },
              Message = "Age欄位必須在1與130之間"
          });
      }
      

        但是這樣的寫法,一但Input模型的欄位增加的話,程式碼也會相對的增加。也會影響程式碼的效率。所以我們將驗證的方式更改一下,改為ValidationContext進行驗證

      // 使用ValidationContext的驗證物件
      // 定義ValidationContext的驗證物件
      var context = new ValidationContext(query);
      
      // 定義進行Validation回傳的訊息
      var validationResults = new List<ValidationResult>();
      
      // 進行驗證動作
      bool isValid = Validator.TryValidateObject(query, context, validationResults, true);
      
      // 將驗證結果進行處理,並回傳到指定的回傳物件中
      result.IsValid = isValid;
      result.List = validationResults.Select(c => new Models.ValidModels.ValidInfoResult.ValidItem()
                                      {
                                          Field = c.MemberNames,
                                          Message = c.ErrorMessage
                                      })
                                      .ToList();
      

        

      從上面的程式碼可以很清楚的看到,只要定義出一個ValidationContext物件,并將要驗證的模型資料傳入,就可以在TryValidateObject的方法中,將所有資料不合法的欄位進行驗證并得到結果

      4.程式碼完成后,我們實際執行剛剛的程式內容,并透過Swagger進行資料的輸入。其中Name的欄位以及Age的欄位我刻意輸入了不合法的內容

       

      按下"Try it"之后,得到的結果如下圖所示

      可以看到,在結果的顯示上,很清楚的列出"Name "與"Age"兩個欄位是驗證失敗的,也顯示了為什么發生錯誤的訊息內容

      透過ValidationContext的驗證方式,除了可以很快的完成模型資料的合法性驗證外,也可以大量的減少撰寫驗證資料的程式碼,提升程式效率與開發速度

      范例程式下載
      https://github.com/madukapai/maduka-WebAPI

      posted on 2019-01-07 18:32  www.blender-3d.cn  閱讀(1229)  評論(1)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产高清不卡视频| 久久中文字幕国产精品| 中文字幕午夜福利片午夜福利片97| 国产精品中文字幕二区| 中文字幕亚洲综合小综合| 精品一区二区三区不卡| 97se亚洲综合自在线| 亚洲国产精品久久久天堂麻豆宅男| 色综合久久久久综合体桃花网| 人妻中文字幕精品系列| 日本成本人片免费网站| 亚洲aⅴ无码专区在线观看q| 漂亮的人妻不敢呻吟被中出| 国产初高中生粉嫩无套第一次| 国产福利在线观看免费第一福利| 少妇无码av无码专区在线观看| 亚洲午夜成人精品电影在线观看| 蜜臀av午夜精品福利| 大陆一级毛片免费播放| 国产精品国产三级国产专| 野外做受三级视频| 四虎精品视频永久免费| 久久亚洲精品天天综合网| 久久国产免费观看精品3| 少妇被粗大猛进进出出| 成人国产av精品免费网| 美日韩精品一区二区三区| 国产精品原创不卡在线| 动漫AV纯肉无码AV电影网| 97一期涩涩97片久久久久久久| 成人国产永久福利看片| 亚洲一本二区偷拍精品| 亚洲午夜亚洲精品国产成人| 麻豆国产传媒精品视频| 油尖旺区| 国产精品妇女一区二区三区| 制服丝袜美腿一区二区| 加勒比无码人妻东京热 | 国产台湾黄色av一区二区| 深夜福利资源在线观看| 中文字幕日本一区二区在线观看|