【发布时间】:2021-09-01 04:04:39
【问题描述】:
输入 JSON:
{ "name": "gerry" }
动作方法:
{ public ActionResult GenerateQrCode([FromBody] string name }
问题:
- 简单类型的参数为空
- 模型状态:无效
- 内置的 json 反序列化器无法处理这种形式的输入
我试过了:
-
ConfigureServices()->services.AddControllersWithViews().AddNewtonsoftJson();切换到我知道/喜欢的 NewtonSoft - 我在非 NewtonSoft 内置 MS
SystemTextJsonInputFormatter.ctor()中设置了一个断点,只是为了检查它是否仍在使用:是的,是的,我不知道为什么,当我调用以上.AddNewtonsoftJson()
情况:
- 客户端将所有输入参数 POST 为一个 JSON 字符串文档,即 UTF8 w/out BOM
- 该字符串来自服务器端,在即时窗口内使用
new System.IO.StreamReader(Request.Body).ReadToEnd()可以很好地读取 - 我需要一种 ASP.NET Core 反序列化的方法,因为它可以在 .NET4.X 下运行多年而没有任何问题
- 我不想在整个服务器操作/参数中添加
[FromBody]和类似的选择加入签名
【问题讨论】:
标签: json asp.net-core .net-core data-binding deserialization