2017-08-31 19 views
0

formbodyに関連するエラーが発生しました。 dot netCRUD REST APIを作成しています。以下のコードタイプまたは名前空間 'frombody'が見つかりません

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using System.Web.Mvc; 
using ProductDataAccess; 

public ProductEntities Entities = new ProductEntities(); 

public HttpResponseMessage Post([FormBody] Product product) 
    { 
     try 
     { 
      Entities.Products.Add(product); 
      Entities.SaveChanges(); 
      var response = Request.CreateResponse(HttpStatusCode.Created, product); 
      response.Headers.Location = Request.RequestUri; 

      return response; 
     } 
     catch (Exception) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Data Not Inserted"); 

     } 
    } 

アップデート1

ProductDataAccessファイルが新しいプロジェクトとして作成されているが、両方が同じ溶液中です。コントローラのコードはここで私はformbodyエラーを取得しています

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using System.Web.Mvc; 
using ProductDataAccess; 

namespace REST_API.Controllers 
{ 
    public class ProductsController : ApiController 
    { 
    public ProductEntities Entities = new ProductEntities(); 

    public HttpResponseMessage Get() 
    { 
     try 
     { 
      return Request.CreateResponse(HttpStatusCode.Found, Entities.Products.ToList()); 
     } 
     catch 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Data Found"); 
     } 
    } 

    public HttpResponseMessage Get (int id) 
    { 
     try 
     { 
      return Request.CreateResponse(HttpStatusCode.Found, Entities.Products.SingleOrDefault(p => p.Id == id)); 
     } 
     catch 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Data Found"); 
     } 
    } 

    public HttpResponseMessage Post([FormBody] Product product) 
    { 
     try 
     { 
      Entities.Products.Add(product); 
      Entities.SaveChanges(); 
      var response = Request.CreateResponse(HttpStatusCode.Created, product); 
      response.Headers.Location = Request.RequestUri; 

      return response; 
     } 
     catch (Exception) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Data Not Inserted"); 

     } 
    } 
}} 

を下回っています。私は質問に1つのanswerを得ましたが、依然として、私は望ましい結果を得ることができません。

すべてのヘルプは非常

+0

名前空間もクラスもなくファイルに直接関わる関数と定義ですか? – Gusman

+0

@Gusman名前空間が追加されました。 'ProductDataAccess'ファイルは別々に作成され、APIプロジェクトの参照として追加されました。しかし、両方のファイルは同じ解決策の下にあります –

+0

このファイルでも、名前空間もクラスもありません。例が不正な場合は、実際のコードを追加します。そうでなければ、コードは完全に間違っています。 – Gusman

答えて

0

FormBodyFromBodyアクションフィルタは、方法は、可変オブジェクトがリクエスト内のデータが取り込まれなければならないことを知ることができなければなら理解されよう。リクエストボディを取り、C#のオブジェクトに解析し

{ 
    "Name" : "Product Name", 
    "Price" : 0.50 
} 

APIのメソッド::

public HttpResponseMessage Post([FromBody] Product product) 
{ 
    var name = product.Name; // "Product Name" 
    var price = product.Price: // 0.50 
} 

乾杯あなたのAPIへのPOSTリクエストのボディに

例JSONオブジェクト!

関連する問題