【发布时间】:2017-09-16 10:13:28
【问题描述】:
我正在尝试让我的服务发送一个 JSON 响应以及一个状态码,但我不确定该怎么做。例如,作为对 POST 请求的响应,我想发送 201 Created 响应。到目前为止,我所拥有的就是这个。
EmployeeApiController.cs
[RoutePrefix("api/employee")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class EmployeeApiController : ApiController
{
readonly EmployeePersistence persistence;
public EmployeeApiController()
{
persistence = new EmployeePersistence();
}
[HttpPost]
[Route("")]
public HttpResponseMessage Post([FromBody]EmployeeDto employee)
{
long id = persistence.SaveEmployee(employee);
// create http response
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);
response.Headers.Location = new Uri(Request.RequestUri, String.Format("/api/employee/{0}", id));
return response;
}
现在返回 text/html 而不是 JSON。我尝试将返回类型更改为IHttpActionResult,然后更改为return Json(response),但这没有用。应该怎么做?
【问题讨论】:
-
为什么你的set route("")可以去掉