.NET Core 2.1 升级到 3.0 后,web api returns 空对象
After .NET Core 2.1 to 3.0 Upgrade, the web api returns empty objects
从 .net core 2.1 升级到 3.0 后,web api 是 returning 空对象。 API 路由工作正常,我可以看到网络试图 return 所有对象。然而,在 chrome 的网络选项卡上,我只能看到响应中的空数据对象(但对象的数量与 Web 尝试 return 的数量相匹配)。
尝试查看 MSDN 中发布的迁移问题,但 none 似乎适用于这种情况
建议使用 DataContract/DataMember 属性提供类似答案,但这没有帮助。
数据模型
public class FileDataModel
{
public double sNo;
public DateTime createdDate;
public string FileName;
public FileDataModel(DataRow data)
{
sNo = (data["Sno"] == DBNull.Value) ? -1 : (double)data["Sno"];
createdDate = (DateTime)data["Date"];
FileName = (string)data["FileName"];
}
}
API 控制器(.NET 4.7.2 Class 库)
[Route("api/[controller]")]
[ApiController]
public class DataController : ControllerBase
{
static DataController()
{
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<FileDataModel>> Get()
{
List<FileDataModel> data = FileData.getAllData();
return data;
}
}
.NET 核心项目 - Startup.cs
services.AddMvc().AddApplicationPart(Assembly.Load("WebApi")).AddControllersAsServices();
预期结果是所有 FileDataModel 对象都收到完整数据,但我收到的是
[{},{},{},{},{},{},{},{},{},{},{}]
问题是 FileDataModel 没有将变量公开为 public 属性。一旦我改变了它,它就起作用了。
从 .net core 2.1 升级到 3.0 后,web api 是 returning 空对象。 API 路由工作正常,我可以看到网络试图 return 所有对象。然而,在 chrome 的网络选项卡上,我只能看到响应中的空数据对象(但对象的数量与 Web 尝试 return 的数量相匹配)。
尝试查看 MSDN 中发布的迁移问题,但 none 似乎适用于这种情况
建议使用 DataContract/DataMember 属性提供类似答案,但这没有帮助。
数据模型
public class FileDataModel
{
public double sNo;
public DateTime createdDate;
public string FileName;
public FileDataModel(DataRow data)
{
sNo = (data["Sno"] == DBNull.Value) ? -1 : (double)data["Sno"];
createdDate = (DateTime)data["Date"];
FileName = (string)data["FileName"];
}
}
API 控制器(.NET 4.7.2 Class 库)
[Route("api/[controller]")]
[ApiController]
public class DataController : ControllerBase
{
static DataController()
{
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<FileDataModel>> Get()
{
List<FileDataModel> data = FileData.getAllData();
return data;
}
}
.NET 核心项目 - Startup.cs
services.AddMvc().AddApplicationPart(Assembly.Load("WebApi")).AddControllersAsServices();
预期结果是所有 FileDataModel 对象都收到完整数据,但我收到的是
[{},{},{},{},{},{},{},{},{},{},{}]
问题是 FileDataModel 没有将变量公开为 public 属性。一旦我改变了它,它就起作用了。