2017-06-05 46 views
0

我有這樣的控制器,我有POST方法..但這種方法並不能插入數據庫中的值..我解決不了這個..需要幫助公共HttpResponseMessage郵報([FromBody]產品pro)

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); 
     } 
} 

主機:本地主機:52442的User-Agent:Mozilla的/ 5.0(Windows NT的10.0; WOW64; RV:53.0)的Gecko/20100101火狐/ 53.0接受:應用/ JSON 接受語言:EN-US, en; q = 0.5 Accept-Encoding:gzip,deflate Connection:keep-alive升級 - 不安全 - 請求:1內容類型: 應用程序/ json

我想在我的產品表中插入這些值

{ 「PRODUCT_NAME」:瑪麗亞 B 「 」條形碼「 123456789 」expiry_dates「:」 2022-05-12T00:00: 00" , 「單元」: 「3PC」, 「稅」:500.0, 「成本」:8000.0, 「大小」: 「中」, 「量」:2 「CATEGORY_ID」:7, 「位置」:[], 「PRODUCT_CATEGORY」:空, 「purchase_line」:[], 「sales_line」:[]}

+3

首先,你是否在entity.SaveChanges()上遇到異常?如果是這樣。什麼是錯誤?最後,如果你調試應用程序。 「產品」有什麼價值?它是你用json描述的期望值嗎? –

+0

它會給你一個BAD_REQUEST響應嗎?或者什麼都沒有? –

+0

它給BAD_REQUEST錯誤,並沒有顯示任何異常 –

回答

0

您可以檢查是否有對產品表的任何約束用dB如果entities.SaveChanges();失敗。

0

由於沒有屬性的路由假設的跡象,您應該重構爲網頁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在捕獲中放置一個斷點並檢查例外'ex'。 – Nkosi