Asp.net core 如何为ajax.datatable列名定义数据的名称?我一直得到ajax.datatable的未知参数错误

Asp.net core 如何为ajax.datatable列名定义数据的名称?我一直得到ajax.datatable的未知参数错误,asp.net-core,.net-core,asp.net-ajax,Asp.net Core,.net Core,Asp.net Ajax,JobProg.js var dataTable; $(document).ready(function () { loadDataTable(); }); function loadDataTable() { dataTable = $('#tblData').DataTable({ "ajax": { "url": "/Admin/CMJobProg/GetAll"

JobProg.js

var dataTable;

$(document).ready(function () {
   loadDataTable();
});

function loadDataTable() {
    dataTable = $('#tblData').DataTable({
        "ajax": {
            "url": "/Admin/CMJobProg/GetAll"
        },
        "columns": [
            { "data": "jobnumber", "width": "35%" },
            { "data": "assignfrom",  "width": "35%" },
            { "data": "assignto",  "width": "35%" },
            { "data": "dateassign",  "width": "35%" },
            { "data": "jobaction",  "width": "35%" },
            { "data": "remarks", "width": "35%" },
            { "data": "type", "width": "35%" },
            { "data": "division" ,"width": "35%" }
                
        ]

    })
}
CMJobProg.cs

namespace LXG.Models
{
    [Table("CMJOBPROG", Schema = "LASIS")]
    public class CMJobProg
    {
        [Required]
        [MaxLength(8)]
        [Display(Name = "Job Number")]
        [Column("JOB_NUMBER")]
        public string JobNumber { get; set; }

        [Display(Name = "Assign From")]
        [MaxLength(22)]
        [Column("ASSIGN_FROM")]
        public string AssignFrom { get; set; }

        [Display(Name = "Assign To")]
        [MaxLength(22)]
        [Column("ASSIGN_TO")]
        public string AssignTo { get; set; }

        [Column("DATE_ASSIGN")]
        public DateTime DateAssign { get; set; }

        [Display(Name = "Job Action")]
        [Range(0, 999)]
        [Column("JOB_ACTION")]
        public int? JobAction { get; set; }

        [Display(Name = "Remarks")]
        [MaxLength(500)]
        [Column("REMARKS")]
        public string Remarks { get; set; }

        [Display(Name = "Job Type")]
        [Required]
        [MaxLength(2)]
        [Column("TYPE")]
        public string Type { get; set; }

        [MaxLength(2)]
        [Column("DIVISION")]
        public string Division { get; set; }

        
    }
}
DataTables警告:表id=tblData-为第0行第0列请求的未知参数“jobnumber”。有关此错误的详细信息,请参阅


我一直遇到这个错误,如何修复?我能得到数据备注、类型和划分,但我不能得到其他数据。如何为数据名定义名称?

在模型/实体类中遵循区分大小写的列名。比如说,

"data": "jobnumber"

在Startup.cs中添加此“AddNewtonsoftJson”

services.AddControllersWithViews().AddRazorRuntimeCompilation().AddNewtonsoftJson(options =>
{
    options.SerializerSettings.ContractResolver = new DefaultContractResolver();
    options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});

据我所知,asp.net核心返回的json将有一种特殊的格式。如下所示:JobNumber to
JobNumber
。解决这个问题。我建议您可以为每个模型属性设置一个JsonPropertyName属性

更多详细信息,请参考以下代码:

[Table("CMJOBPROG", Schema = "LASIS")]
public class CMJobProgress
{
    [Required]
    [MaxLength(8)]
    [Display(Name = "Job Number")]
    [Column("JOB_NUMBER")]
    [JsonPropertyName("jobnumber")]
    public string JobNumber { get; set; }

    [Display(Name = "Assign From")]
    [MaxLength(22)]
    [Column("ASSIGN_FROM")]
    [JsonPropertyName("assignfrom")]
    public string AssignFrom { get; set; }

    [Display(Name = "Assign To")]
    [MaxLength(22)]
    [Column("ASSIGN_TO")]
    [JsonPropertyName("assignto")]
    public string AssignTo { get; set; }

    [Column("DATE_ASSIGN")]
    [JsonPropertyName("dateassign")]
    public DateTime DateAssign { get; set; }

    [Display(Name = "Job Action")]
    [Range(0, 999)]
    [Column("JOB_ACTION")]
    [JsonPropertyName("jobaction")]
    public string JobAction { get; set; }

    [Display(Name = "Remarks")]
    [MaxLength(500)]
    [Column("REMARKS")]
    [JsonPropertyName("remarks")]
    public string Remarks { get; set; }

    [Display(Name = "Job Type")]
    [Required]
    [MaxLength(2)]
    [Column("TYPE")]
    [JsonPropertyName("type")]
    public string Type { get; set; }

    [MaxLength(2)]
    [Column("DIVISION")]
    [JsonPropertyName("division")]
    public string Division { get; set; }

}
结果:


谢谢白兰度。我通过添加JsonPropertyName得到了结果。也谢谢Asherguru的评论。
[Table("CMJOBPROG", Schema = "LASIS")]
public class CMJobProgress
{
    [Required]
    [MaxLength(8)]
    [Display(Name = "Job Number")]
    [Column("JOB_NUMBER")]
    [JsonPropertyName("jobnumber")]
    public string JobNumber { get; set; }

    [Display(Name = "Assign From")]
    [MaxLength(22)]
    [Column("ASSIGN_FROM")]
    [JsonPropertyName("assignfrom")]
    public string AssignFrom { get; set; }

    [Display(Name = "Assign To")]
    [MaxLength(22)]
    [Column("ASSIGN_TO")]
    [JsonPropertyName("assignto")]
    public string AssignTo { get; set; }

    [Column("DATE_ASSIGN")]
    [JsonPropertyName("dateassign")]
    public DateTime DateAssign { get; set; }

    [Display(Name = "Job Action")]
    [Range(0, 999)]
    [Column("JOB_ACTION")]
    [JsonPropertyName("jobaction")]
    public string JobAction { get; set; }

    [Display(Name = "Remarks")]
    [MaxLength(500)]
    [Column("REMARKS")]
    [JsonPropertyName("remarks")]
    public string Remarks { get; set; }

    [Display(Name = "Job Type")]
    [Required]
    [MaxLength(2)]
    [Column("TYPE")]
    [JsonPropertyName("type")]
    public string Type { get; set; }

    [MaxLength(2)]
    [Column("DIVISION")]
    [JsonPropertyName("division")]
    public string Division { get; set; }

}