2017-09-16 7 views
0

私のサービスがステータスコードとともにJSONレスポンスを送信するようにしようとしていますが、その方法はわかりません。たとえば、POSTリクエストに対する応答として、201 Createdレスポンスを送信したいとします。これまで私が持っているのはこれです。ASP.NETサービスからJSONレスポンスが送信される

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; 
    } 

JSONの代わりにtext/htmlを返します今すぐ。戻り値の型をIHttpActionResultに変更してからreturn Json(response)に変更しようとしましたが、それが機能しませんでした。それはどうすればいいのですか?

+0

はなぜすることができます(「」)あなたの設定経路ある問題を解決する必要がありますあなたのクラスの装飾

[Produces("application/json")] [RoutePrefix("api/employee")] [EnableCors(origins: "*", headers: "*", methods: "*")] 

[Produces("application/json")]を追加し、この

[HttpPost] public IActionResult Post([FromBody]EmployeeDto employee) { long id = persistence.SaveEmployee(employee); return Created('employee',new {id = id}); } 

ようにあなたのコントローラメソッドを変更それを除く –

答えて

0

これは

関連する問題