[英]ASP.NET service send JSON response
我正在嘗試讓我的服務發送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)
但這沒有用。 應該怎么做?
將[Produces("application/json")]
到您的類裝飾中
[Produces("application/json")]
[RoutePrefix("api/employee")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
然后像這樣改變你的控制器方法
[HttpPost]
public IActionResult Post([FromBody]EmployeeDto employee)
{
long id = persistence.SaveEmployee(employee);
return Created('employee',new {id = id});
}
這應該解決問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.