2017-06-05 4 views
0

私はポストメソッドを持って、このコントローラを持っている..しかし、この方法は、データベースに値を挿入しません..私はこの問題を解決することはできません。..公共HttpResponseMessageポスト([FromBody]製品プロ)

を助けが必要
public HttpResponseMessage Post([FromBody]product pro) 
{ 
     try 
     { 
      using (project_smartEntities entities = new project_smartEntities()) 
      { 
       entities.products.Add(pro); 
       entities.SaveChanges(); 


       var message = Request.CreateResponse(HttpStatusCode.Created, pro); 
       message.Headers.Location = new Uri(Request.RequestUri + pro.product_id.ToString()); 
       return message; 
      } 

     } 

     catch (Exception ex) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex); 
     } 
} 

ホスト:localhostを:52442のUser-Agent:Mozillaの/ 5.0(Windows NTの10.0; WOW64; RV:53.0)のGecko/20100101 Firefoxの/ 53.0受け入れ:アプリケーション/ JSON を受け入れる言語:EN-USを、アクセプトエンコーディング:gzip、デフレート 接続:キープアライブアップグレード - 安全性の要求:1コンテンツタイプ: application/json

私は、製品の表に、これらの値を挿入したい

{ "PRODUCT_NAME":マリア B " "バーコード":123456789、 "expiry_dates":" 2022-05-12T00:00: 「単位」:「3pc」、「税」:500.0、「コスト」:8000.0、「サイズ」:「中」、「数量」:2、「category_id」:7、「場所」:[] "PRODUCT_CATEGORY":ヌル、 "purchase_line":[]、 "sales_line":[]}

+3

まず、entities.SaveChanges()の例外がありますか?そしてそうならば。エラーは何ですか?最後に、アプリケーションをデバッグする場合。 「製品」にはどのような価値がありますか?それはあなたのjsonで説明した期待値ですか? –

+0

あなたはBAD_REQUEST応答を返しますか?何もない? –

+0

そのBAD_REQUESTエラーが発生し、例外が表示されない –

答えて

0

entities.SaveChanges();が失敗している場合は製品の表上の任意の制約がDBにあるかどうかをチェックすることができます。

0

仮定をルーティング属性の兆候がないので、あなたは、Web API 2

public IHttpActionResult Post([FromBody]product pro) {  
    try { 
     using (var entities = new project_smartEntities()) { 
      entities.products.Add(pro); 
      entities.SaveChanges(); 
      return CreatedAtRoute(
       routeName: "DefaultApi", 
       routeValues: new { id = pro.product_id, controller = "products" }, //assuming route template "api/{controller}/{id}" other properties 
       content: pro);     
     } 
    } catch (Exception ex) { 
     return BadRequest(); 
    }  
} 

のより最近のAPIの抽象化にリファクタリングすべきは、既定の規則ベースのルートDefaultApi

を使用していることですエンティティが保存されていない理由をデバッグするには、例外ハンドラにブレークポイントを置き、例外の原因を確認します。

+0

動作しません。同じエラーBAD_REQUESTが例外なしで返されます。 –

+0

@RafiaZaheer catchにブレークポイントを設定し、例外「ex」をチェックします。 – Nkosi