Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类型或命名空间';frombody';找不到_C#_Asp.net_Rest_Api - Fatal编程技术网

C# 类型或命名空间';frombody';找不到

C# 类型或命名空间';frombody';找不到,c#,asp.net,rest,api,C#,Asp.net,Rest,Api,我遇到了一个与formbody相关的错误。我正在dotnet中创建一个crudrestapi。下面是代码 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 ProductEnti

我遇到了一个与
formbody
相关的错误。我正在
dotnet
中创建一个
crudrestapi
。下面是代码

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
文件是作为新项目创建的,但两者采用相同的解决方案。控制器的代码如下所示

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

        }
    }
}}
这里我得到了
formbody
错误。我有一个问题,但仍然无法得到预期的结果


非常感谢任何帮助

FormBody必须是FromBody操作筛选器让方法知道必须使用请求中的数据填充变量对象

API的POST请求主体中的JSON对象示例:

{
  "Name" : "Product Name",
  "Price" : 0.50 
}
获取请求主体并解析为C#对象的API方法:


干杯

导入以下命名空间:

using System.Web.Http;
如果您使用的是dot net core,请导入以下内容

using Microsoft.AspNetCore.Mvc;

函数和定义直接在没有名称空间或类的文件上?@Gusman添加名称空间。
ProductDataAccess
文件是单独创建的,并添加为API项目中的参考。但这两个文件都在同一个solutionAgain下,在该文件中既没有名称空间也没有类。如果示例格式不正确,则添加真实代码,否则该代码完全错误。@Gusman请查看更新后的代码OK,它不是
FormBody
,而是
FromBody
。。。
using Microsoft.AspNetCore.Mvc;