我有ASP.Net WEB API
以下的輸出響應格式, 我將該項目轉換爲ASP.NET CORE
。如何將響應數據格式化爲ASP.NET CORE?
我已經通過這個link
public class MyClass
{
[JsonProperty("id")]
public long Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
}
// Helper.cs
public class ApiResponse
{
[DataMember(EmitDefaultValue = false)]
[JsonProperty(PropertyName = "data")]
public object Data { get; set; }
public ApiResponse(HttpStatusCode statusCode, object result = null)
{
Data = result;
}
}
// Helper.cs
public class WrappingHandler<T> where T : class
{
public static HttpResponseMessage ResponseHandler(IEnumerable<T> responseObject, HttpRequestMessage request)
{
HttpResponseMessage response = request.CreateResponse(HttpStatusCode.OK, responseObject);
var newResponse = request.CreateResponse(HttpStatusCode.OK, new ApiResponse(HttpStatusCode.OK, responseObject));
return newResponse;
}
}
// HomeController.cs
public HttpResponseMessage RetriveData(string name)
{
try
{
var mydata = _context.Get(name);
return WrappingHandler<MyClass>.ResponseHandler(mydata, Request);
}
}
// output for asp.net webapi
{
"data": [
{
"id": 32,
"name": "Hi everyone"
}
]
}
了現在,我的項目轉換爲ASP.NET CORE
所以我需要改變返回類型,以及從HttpResponseMessage
到IActionResult or
JsonResult`但我怎麼管理我的自定義輸出格式更改?
我的意思是我需要做什麼改變WrappingHandler
和ApiResponse
anyhelp?
爲什麼你需要'WrappingHandler'?爲什麼不直接從操作中返回響應? – peco
'WrappingHandler'我正在做一些格式化,就像我希望將結果寫入'data'中,並且還在'output'中添加了更多的額外字段,例如'metadata'。那就是爲什麼使用WrappingHandler並進行格式化。它適用於asp.net webapi,但如何使用/使這些chnages進入asp.net核心返回響應 – Neo