【发布时间】:2020-01-21 00:27:16
【问题描述】:
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 控制器尝试 1 的 HttpResponse:
{ "$id": "1", “账单”: { "$id": "2", "type": "TYPE1",
XYZ 控制器尝试 2 的 HttpResponse:-- 不以 $id 1 开头
{ "$id": "28", “账单”: { "$id": "29", "type": "TYPE1",
XYZ 控制器尝试 3 的 HttpResponse:- 不以 $id 1 开头
{ "$id": "55", “账单”: { "$id": "56", "type": "TYPE1",
我正在使用 Newtonsoft.Json (11.0.2)
【问题讨论】:
-
您能说明如何获得响应(您要重现的 Web api 代码)吗?
-
我已添加控制器信息。
-
这不能使用提供的示例代码/json设置生成。
$id在每次调用JsonConvert.Serialize时都会为我重置。您需要提供更多信息,例如输入和输出模型是什么样的?Process方法大致做了什么? -
我有另一个控制器正在返回运行状况检查。 [HttpGet] public async Task
GetHealth() { 动态 healthStatus = true;返回确定(健康状态); } } 这也返回上次调用中引用的 $id。 -
[Route("api/[controller]")] [ApiController] public class HealthController : ControllerBase { } 控制器注册签名
标签: asp.net-core-webapi asp.net-core-2.1