【发布时间】:2020-02-26 03:40:43
【问题描述】:
我有一个带有自定义模型类型的简单控制器标题 - 没有无参数构造函数和公共设置器。
我在 asp.net mvc core 2.2 和 3.1 中尝试了以下代码。
模型类:
public class Heading
{
public string Title { get; }
public Heading(string title)
{
Title = title;
}
}
API 控制器:
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
[HttpPost]
public void Post([FromBody] Heading value)
{
}
}
使用 .net core 2.2,绑定可以完美运行。但是对于core 3.1,它会抛出错误
System.NotSupportedException:引用类型的反序列化 不支持没有无参数构造函数。类型 'WebApplication3.Controllers.Heading' 在 System.Text.Json.ThrowHelper.ThrowNotSupportedException_DeserializeCreateObjectDelegateIsNull(类型 无效类型)
这是行为上的改变吗?还能实现吗?
【问题讨论】:
-
我很惊讶 .net core 2.2 实际上支持没有无参数构造函数的模型。它是如何工作的?
标签: c# asp.net-core asp.net-core-3.0