c# - 即使数据同时存在大写和小写尝试,json 中也无法识别列
问题描述
好吧很奇怪我得到一个无效的列,即使它在我的 json 代码中,我已经尝试了大写和小写版本,但仍然是同样的错误,是因为我的日期是 utc 格式的 json 吗?
[HttpGet]
public IActionResult GetAuditTrailData() {
int test = 7;
var auditTrailsHistory = _context.MisAuditTrail.Where(w => w.isActive == true && w.isDeleted == false && w.MISObjectId==test).ToList();
string output = JsonConvert.SerializeObject(auditTrailsHistory);
return Json(new { data = auditTrailsHistory });
}
阿贾克斯调用
$(document).ready(function () {
$("#audTrailTable").DataTable({
"ajax": {
url: "/MISObjects/GetAuditTrailData/",
type: "get",
database: "json"
},
"columns": [
{ "data": "createddate" },
{ "data": "createdby" },
{ "data": "action" }
],
"scrollY": "200px",
"scrollCollapse": true,
"paging": false,
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"filter": true, // this is for disable filter (search box)
"orderMulti": false // for disable multiple column at once
})
});
json
"创建案例","CreatedDate":"2020-07-28T20:59:54.2791487+01:00","CreatedBy":"David","isActive":true,"isDeleted":false},{"AuditTrailType" :0,"Id":5,"IPAddressBytes":"","TennantId":"92b4ebe2-c81e-4fbf-91d0-9b422a7843c4","AuditType":0,"MISObjectId":7,"Action":"David做了一些测试”
错误
解决方案
根据你提供的json格式,很混乱,格式有一定的问题。
请确保您返回的 json 数组中的字段名称与 DataTable 方法中列的名称和顺序一致。
这是一个完整的演示供您参考:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult GetAuditTrailData()
{
int test = 7;
var auditTrailsHistory = _context.MisAuditTrail.Where(w => w.isActive == true && w.isDeleted == false && w.MISObjectId == test).ToList();
//string output = JsonConvert.SerializeObject(auditTrailsHistory);
return Json(new { data = auditTrailsHistory });
}
这是要返回的正确 json 格式(为简洁起见,我只传递了三个必填字段):
{"data":[{"action":"David did some tests","createdby":"David","createddate":"2020-07-29T03:59:54.2791487"},{"action":"Jack did some tests","createdby":"Jack","createddate":"2020-07-29T03:59:54.2791487"}]}
指数 :
<div class="card-body">
<table id="audTrailTable" class="table table-bordered table-striped">
<thead>
<tr>
<th>action</th>
<th>createdby</th>
<th>createddate</th>
</tr>
</thead>
</table>
</div>
@section Scripts{
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#audTrailTable").DataTable({
"ajax": {
url: "/MISObjects/GetAuditTrailData/",
type: "post",
database: "json"
},
"columns": [
{ "data": "action" },
{ "data": "createdby" },
{
"data": "createddate",
render: function (data, type, row) {
if (type === "sort" || type === "type") {
return data;
}
//here you can convert date to any format you want to show
return moment(data).format("MM-DD-YYYY HH:mm:ss");
}
}
],
"scrollY": "200px",
"scrollCollapse": true,
"paging": false,
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"filter": true, // this is for disable filter (search box)
"orderMulti": false // for disable multiple column at once
})
});
</script>
}
这是测试结果:
推荐阅读
- tkinter - 从函数更改 tkinter bg
- lambda - 如何在 lambda 演算中减少 beta?
- tsql - TSQL:当 Scehma 更改时删除临时表会出错
- flutter - 里弗波德 | 真正需要多少个提供者才能只观察一个类的一个状态
- bash - 用于将一个大文件拆分为多个文件的 Unix 脚本,每个文件中有两对标签,每个文件都有一个文件名的命名约定
- python - 使用整数列表无法让 If-Statement 在 Jinja 中正确工作
- javascript - 上次修改时间戳
- css - 渲染页面时如何禁用动画?
- r - 嵌套模块和 ObserveEvents - R Shiny
- python - ImportError with psutil 即使“pip3 show psutil”显示它已安装