2015-08-18 57 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