public HttpResponseMessage Post([FromBody] product pro)

时间:2017-06-05 13:07:02

标签: c# json

我有这个控制器我有Post方法..但是这个方法没有在数据库中插入值..我无法解决这个问题..需要帮助

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接受:application / json   Accept-Language:en-US,en; q = 0.5 Accept-Encoding:gzip,deflate   连接: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”:NULL, “purchase_line”:[], “sales_line”:[]}

2 个答案:

答案 0 :(得分:0)

如果entities.SaveChanges();失败,您可以检查Db中的产品表是否存在任何限制。

答案 1 :(得分:0)

您应该重构最近的web api 2

的api抽象
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();
    }    
}

由于没有属性路由的迹象,假设您使用的是默认的基于约定的路由DefaultApi

调试实体未保存的原因在异常处理程序中放置一个断点并查看异常的原因。