2016-10-12 17 views
0

問題があります。角度から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を発見しました。私は矩形ライブラリで同じ問題があります。

私も、私が送信しようと私のJSONこの

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

と私のエコー法私は、この送信され、コントローラメソッド

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

を書くためにこの方法を試してみてください。

{"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

私のポストを更新しました。私はこの方法でこれをやろうとしましたが、私はモデルを持っていますが、まだヌルか0を取得しています –

+1

{"Id":1、 "CouponCode" DiscountPercent ":10}。大文字と小文字が区別されます – Aldo

答えて

0

属性を持っている必要があります。答えは、C#はjsonデータの大文字と小文字を区別したマッチングを期待しています。

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

をする必要があります:だから

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

それは比類のないint型のデフォルト値であるため、nullは比類のない文字列のデフォルト値であるのに対し、あなたは、「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を送信しています: 'code' {"CouponCode": "abc"、 "DiscountPercent":10、 "Id":1} 'code' –

+0

このjsonを送信すると助けになりませんでした。私はまだゼロまたはゼロになっています。 {"CouponCode": "abc"、 "DiscountPercent":10、 "Id":1} –

+0

"id"は小文字にする必要があります。パラメータは、 'setCoupon(int id、string CouponCode、int DiscountPercent)'の大文字と小文字を合わせる必要があります。 –

関連する問題