【发布时间】:2017-07-16 07:34:46
【问题描述】:
我正在尝试从我的 webAPI 控制器的一种 POST 方法发送响应。在数据库中,值正在被保存,但是在尝试和捕获中发送响应时,它会引发以下异常。
异常消息:“值不能为空。参数名称:请求。”
控制器方法代码:
[HttpPost]
public HttpResponseMessage AddEmployee(Employee emp)
{
try
{
using (EmployeeEntities dbEntity = new EmployeeEntities())
{
dbEntity.Configuration.LazyLoadingEnabled = false;
dbEntity.Employees.Add(emp);
dbEntity.SaveChanges();
return Request.CreateResponse(HttpStatusCode.Created, emp); // EXCEPTION IS THROWN HERE
}
}
catch(Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
}
请让我知道我需要做些什么来解决这个问题。谢谢。
从 MVC 控制器方法调用 API 控制器方法,如下所示,
EmployeeController empCtrl = new EmployeeController();
empCtrl.AddEmployee(emp);
【问题讨论】:
-
你能在调用这个方法的地方添加你的代码吗?
-
@zzT 用我调用 API 控制器方法的详细信息更新了我的问题。请检查。
-
@Manju 为什么要手动创建控制器? API 创建它作为请求流的一部分。通过手动创建它,您不会填充其他必需的属性,例如
Request,这就是为什么您的Request是null。
标签: c# asp.net-web-api