c# - 为什么 JSON 对象是空的?
问题描述
我有一个 GET 入口点UsersController
。但是这个响应的是一组空对象。当我调试入口点时,列表 ( IEnumerable<UserViewModel>
) 不为空,UserViewModels
也不为空。
但这是它的响应:
[{},{},{},{},{},{},{},{},{},{},{},{}]
和控制器代码:
[HttpGet]
public async Task<IEnumerable<UserViewModel>> Get()
{
var u = _stObjMap.Default.Obtain<UserTable>();
using (var ctx = new SqlStandardCallContext())
{
var a = await ctx[u].Connection.QueryAsync<UserViewModel>("SELECT UserId, UserName, PrimaryEMail, CreationDate from CK.vUser where UserId <> 0 and UserId <> 1");
return a;
}
}
我真的不认为问题出在控制器上。我正在使用 Dapper。我真的不知道发生了什么。而且我必须写很多,因为我无法编辑这篇文章
解决方案
很可能UserViewModel
没有定义公共属性。
这就是为什么当对象被序列化为 JSON 时没有显示键值对的原因。
根据查询,确保模型中有匹配的属性,以便 Dapper 查询映射选定的列
public class UserViewModel
public int UserId { get; set; }
public string UserName { get; set; }
public string PrimaryEMail { get; set; }
public DateTime CreationDate { get; set; }
}
推荐阅读
- c# - 有没有办法检测磁盘托盘是否在 C# 中打开?
- python-3.x - 如何在熊猫数据框中一列的所有行中提取字符串中的大写单词?
- abap - 在 cl_salv_hierseq_table 中捕获 EXPAND 按钮
- rest - 如何在 Wagtail CMS 中使用 REST API
- excel - 在 BeforeClose 之后打开的看起来很奇怪的工作簿
- security - 通过 API 创建用户的最佳实践是什么?
- python - 个人 PyPI 包:无法导入子包
- javascript - 使用viewchild ElementRef时如何解决无法读取角度未定义的属性'nativeElement'
- sdk - 在没有 UART 电缆的情况下运行 SDK Helloworld.c
- mysql - 将 select 语句的结果复制到本地数据库表中