【发布时间】:2016-11-06 04:51:43
【问题描述】:
我正在构建一个 ASP.Net Web API 应用程序,并且我有以下代码...
public IHttpActionResult GetCustomers() {
var customers = context.Customers.ToList();
return Ok(customers);
}
我使用 Ok() 方法返回客户,因为我使用的是 IHttpActionResult 返回类型。
现在如果我有以下方法
public void DeleteCustomer(int id) {
var customerInDb = context.Customers.SingleOrDefault(c => c.Id == id);
if (customerInDb == null) {
NotFound();
}
context.Customers.Remove(customerInDb);
context.SaveChanges();
}
当我的 ActionMethod 的返回类型为 void 时,我可以在这里使用 NotFound() 方法吗???
【问题讨论】:
-
我们是否应该猜测您的 NotFound 方法的作用?如果您需要帮助,请提供更多代码
-
NotFound() 是 ASP.Net Web API 的内置方法
-
在控制器中验证这一点并仅在 ID 有效时调用 delete 不是更好吗?这样你就可以添加一个简单的 Modelerror 并完成它。
-
那你为什么把你的 DeleteCustomer 方法的返回类型设置为 void 呢?返回 IHttpActionResult...
-
根据 REST-ful 约定,当您发出 HttpGET 请求时,通常会有一个返回类型为 IHttpActionResult 的 ActionResult,它返回 Ok() 以返回 statusCode 200..当您发出 HttpPOST 请求时创建一条记录,您通常有一个返回类型为 IHttpActionResult 的 ActionResult,它返回 Created() 以返回 statusCode 201 ...当您发出 HttpDelete 请求删除记录时,ActionResult 的返回类型为 void..所以我需要知道我是否返回 NotFound()
标签: asp.net