XYZController.cs
[HttpPost]
public async Task<ActionResult> Post([FromBody] T inputContext)
{
var outputContext = Process(inputContext);
return StatusCode(200, outputContext );
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options =>
{
UpdateJsonSettings.ConfigureJsonFormatter(options.SerializerSettings);
});
}
UpdateJsonSettings.cs
internal static void ConfigureJsonFormatter(JsonSerializerSettings settings)
{
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
settings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
settings.Converters.Add(new StringEnumConverter());
}
XYZ控制器的HttpResponse尝试1:
{“ $ id”:“ 1”,“帐单”:{“ $ id”:“ 2”,“ type”:“ TYPE1”,
XYZ控制器的HttpResponse尝试2:-不以$ id 1开头
{“ $ id”:“ 28”, “ $ id”:“ 29”,“ type”:“ TYPE1”,
XYZ控制器的HttpResponse尝试3:-不以$ id 1开头
{“ $ id”:“ 55”, “ $ id”:“ 56”,“ type”:“ TYPE1”,
我正在使用Newtonsoft.Json(11.0.2)
我很难学到这一点!
问题在StatusCode方法中,它正在返回ObjectResult。将方法签名更改为IActionResult并返回JsonResult后,它可以正常工作。而且,API性能得到了改善。
[HttpPost]
public async Task<IActionResult> Post([FromBody] T inputContext)
{
var outputContext = Process(inputContext);
var jsonResult = new JsonResult(outputContext);
jsonResult.StatusCode = 200;
return jsonResult;
}