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;