我必须在 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.JsonConverter
1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)at System.Text.Json.Serialization.Metadata.JsonPropertyInfo
1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer) at System.Text.Json.Serialization.Converters.ObjectDefaultConverter
1.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.JsonConverter
1.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.IEnumerableConverter
1.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.NewtonsoftJson
NuGet 包。
在程序.cs中添加以下代码行:
builder.Services.AddControllers().AddNewtonsoftJson();
它对我有用。