2016-10-12 3 views
0

문제가 있습니다. Angular에서 ASP.NET Core 서버로 데이터를 보내야합니다.asp.net 코어에 데이터를 전달할 수 없습니다.

다음
[HttpPut] 
public IActionResult setCoupon(int id, string CouponCode, int DiscountPercent) 
{ 
    try 
    { 
     var coupon = new Coupon() 
     { 
      Id = id, 
      CouponCode = CouponCode, 
      DiscountPercent = DiscountPercent 
     }; 
     return Ok(coupon); 
    } 
    catch (Exception) 
    { 
     return BadRequest("Wystąpił błąd"); 
    } 
} 

ngResource에서 공장 (getCoupon이 작동) :

여기
app.factory('couponApi', 
    function($resource) { 
     return $resource("/coupon/setCoupon", 
      {}, 
      { 
       getCoupon: { 
        method: "GET", 
        isArray: false 
       }, 
       putCoupon: { 
        method: "PUT", 
        isArray: false, 
       } 
      }); 
    }); 

공장의 사용이다 : 여기 컨트롤러

 $scope.addCouponCode = function(coupon) { 
     couponApi.putCoupon(coupon); 
    }; 

난 내 asp.net 서버를 디버깅 할 때 내 params null 또는 0을 찾았습니다. 난 restangular 라이브러리에 동일한 문제가 있습니다.

나는 또한 컨트롤러 메소드를 작성하는이 방법을 시도

내가 보내려고

내 JSON은

[HttpPut] 
    public IActionResult setCoupon(Coupon coupon) 
    { 
     try 
     { 
      return Ok(coupon); 
     } 
     catch (Exception) 
     { 
      return BadRequest("Wystąpił błąd"); 
     } 
    } 

{"id":1,"couponCode":"abc","discountPercent":10} 

내 에코 방법은 저에게이를 보내

{"id":0,"couponCode":null,"discountPercent":0} 

업데이트

분명히 asp.net 코어에서

는 방법은 속성이 [FromBody] 알도으로

[HttpPut] 
    public IActionResult setCoupon([FromBody] Coupon coupon) 
    { 
     try 
     { 
      return Ok(coupon); 
     } 
     catch (Exception) 
     { 
      return BadRequest(new {errorMessage = "Wystąpił błąd"}); 
     } 
    } 
+0

헤이로보세요 api. 요청에 대한 모델을 만들어야하는 것 같습니다. – Aldo

+0

내 게시물이 업데이트되었습니다.이 방법으로 시도했지만 모델이 있지만 여전히 null이거나 0이됩니다. –

+1

{ "Id": 1, "CouponCode": "abc", " DiscountPercent ": 10}입니다. 어쩌면 대소 문자를 구분합니다. – Aldo

답변

0

이 코멘트에 말했다 있어야합니다. 대답은 C#이 json 데이터의 대/소문자 구분 일치를 예상한다는 것입니다. 그래서 :

{"id":1,"couponCode":"abc","discountPercent":10} 

필요가 되실 :

{"id":1,"CouponCode":"abc","DiscountPercent":10} 

타의 추종을 불허하는 문자열에 대한 기본값은 널 (null) 반면 즉, 타의 추종을 불허 INT의 기본 값이기 때문에 당신은 'discountPercent'에 대한 0을 받고 있었다, 따라서 에코는 반환은 https : //www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-

{"id":0,"couponCode":null,"discountPercent":0} 
+0

이 json을 보냄 : '코드'{ "CouponCode": "abc", "DiscountPercent": 10, "Id": 1} '코드' –

+0

이 json을 보냄으로써 도움이되지 않았습니다. 나는 여전히 null 또는 0을 얻고 있습니다. { "CouponCode": "abc", "DiscountPercent": 10, "Id": 1} –

+0

"id"는 소문자 여야합니다. 매개 변수는'setCoupon (int id, string CouponCode, int DiscountPercent)'의 대소 문자와 일치해야합니다. –

관련 문제