无法在核心 Web API 中显示 ASP.NET 数据表



我必须在 ASP.NET Core Web API中显示一个数据表。

这是我的代码。

控制器:

[Route("api/[controller]")]
[ApiController]
public class MapDataTableDemo : ControllerBase
{
Product p;

public MapDataTableDemo()
{
p = new Product();
}

[HttpGet]
public async Task<IActionResult> MapDataTable()
{
var response = p.GetDataTable();
return Ok(response);
}
}

产品型号类别:

public class Product
{
public DataTable dataTable { get; set; }
public DataTable GetDataTable()
{
this.dataTable = new DataTable();
this.dataTable.Columns.Add("product name");
this.dataTable.Columns.Add("product price");
this.dataTable.Rows.Add("mobile", 20000);
this.dataTable.Rows.Add("tv", 15000);
this.dataTable.Rows.Add("washing machine", 30000);
return this.dataTable;
}
}

调试 API 时,我可以看到响应,但无法显示数据表。

我收到如下错误:

错误:响应状态为 500

响应正文

System.NotSupportedException:不支持"System.Type"实例的序列化和反序列化。路径: $。列.数据类型。

System.NotSupportedException:不支持"System.Type"实例的序列化和反序列化。

at System.Text.Json.Serialization.Converters.UnsupportedTypeConverter1.Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options) at System.Text.Json.Serialization.JsonConverter1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)

at System.Text.Json.Serialization.Metadata.JsonPropertyInfo1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer) at System.Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.JsonConverter1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter1.TryWriteAsObject(Utf8JsonWriter writer, Object value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.JsonConverter1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.Converters.IEnumerableConverter1.OnWriteResume(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.JsonCollectionConverter'2.OnTryWrite(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions选项,WriteStack&状态)

有什么解决办法吗?

谢谢!

安装Microsoft.AspNetCore.Mvc.NewtonsoftJsonNuGet 包。

在程序.cs中添加以下代码行:

builder.Services.AddControllers().AddNewtonsoftJson();

它对我有用。

最新更新