.net-core - DotNetCore 3.1 Web Api 空对象响应
问题描述
返回具有公共属性的类实例时,将返回一个空的 JSON 对象 { }。但是,如果我返回一个动态对象,则会返回预期的响应。我正在使用带有最新补丁的 VS2019。重现步骤,创建 ASP.NET Core Web API 项目并选择 .NET Core 3.1 (LTS) 作为框架。用我在下面包含的内容替换 WeatherForecastController.cs 的内容并运行应用程序。
using Microsoft.AspNetCore.Mvc;
namespace WebApplication3.Controllers
{
public class JsonResponse
{
public string Challenge;
public int Ttl;
}
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
public ActionResult Get()
{
JsonResponse rsp = new JsonResponse { Challenge = "challenge", Ttl = 1 };
return Ok(rsp); // returns { }
//return Ok(new { Challenge = "challenge", Ttl = 1 }); // returns { challenge: "challenge", ttl: 1 }
}
}
}
解决方案
尝试修改您的JsonResponse
类以使属性包含 aget
和set
访问器的声明,如下所示。
public class JsonResponse
{
public string Challenge { get; set; }
public int Ttl { get; set; }
}
正如本文档中提到的“序列化行为”,默认情况下会忽略字段。
推荐阅读
- html - 如何更新 SVG 组内的多个文本值?
- javascript - 在 Node-RED 切换节点中使用上下文值
- angular - 从嵌套类设计嵌套的响应式表单
- python - 对 pandas 列中的值列表应用 validators.domain 函数
- vba - 运行时 52 Bad file name or number error on one network system
- c# - 阻止警报框在每次回发时触发
- javascript - 将 Modal 的内容分享到社交媒体
- azure - 设置发布管道以连接到 Azure 订阅时出错
- xamarin.forms - 当文本不再适合屏幕时,如何以编程方式将滚动移动到滚动视图?
- python - 使用子进程从python执行ffmpeg命令