2015-08-18 55 views
0

我在web api中進行velidation,但在一個地方我找不到任何解決方案。web api驗證ewrror

 [Required(ErrorMessage = "Enter Height")] 
     [Range(0,999, ErrorMessage = "Height is too long")] 
     [RegularExpression(@"^[0-9]+$", ErrorMessage = "Enter Only Numbers")] 
     public Nullable<int> Height { get; set; } 

在這裏,我想使用需要驗證檢查僅整數,但是當我在休息的客戶端運行此並給予地方高度的一些字符串是整數。

它不給錯誤消息的地方,它給錯誤 「只能輸入數字」:

"Could not convert string to integer: d. Path 'Weight', line 9, position 12."

+0

嗨,你能告訴我們如何爲您的控制器和你是如何發送數據? –

回答

0

[HttpPost] [路線( 「API /拳皇」)]

[ResponseType(typeof(tblFighters))] 

    public IHttpActionResult createFighter(tblFighters tblFighters) 
    { 

     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 

     bool usernameAlreadyExists = db.tblFighters.Any(x => x.FName == tblFighters.FName && x.LName == tblFighters.LName && x.DOB == tblFighters.DOB); 

     if (ModelState.IsValid && usernameAlreadyExists == true) 
     { 


      return Ok("Fighter Already Exist"); 
     } 
     else 
      //for getting last user modification time 
      tblFighters.LastUserModified = DateTime.Now; 
     //for authentication for getting modified user id 
     //string currentuser = HttpContext.Current.Items["ID"].ToString(); 
     //tblFighters.ModifiedUserId = Convert.ToInt32(currentuser); 
     db.tblFighters.Add(tblFighters); 
     db.SaveChanges(); 

     return CreatedAtRoute("DefaultApi", new { id = tblFighters.FighterID }, tblFighters); 
    } 

這是控制器和高級REST客戶端,我用選擇JSON格式和數據發佈數據是

{ FighterID:1114182, FName參數: 「Bretffft」, LName的: 「庫珀」, 記錄: 「9-2」, DOB: 「1971-02-1322」, 年齡:44, 身高:72, 重量:185, 達到:83, 照片: 「http://220.225.222.173/RingsideAdmin/Assets/fighterPhotos/fighterf4d7cc5f-52be-4566-8e87-b7398aee7788.jpg」, 家鄉: 「零件未知」, ModifiedUserId:410, ModifiedUser: 「管理員」, LastUserModified: 「2015-08-14T19:17:37.977」 } IF我REMOVE高度值,並通過INTEGER及其給錯誤TO ME