【问题标题】:Issue posting data from a Kendo Grid to an ASP.NET MVC Controller将数据从 Kendo Grid 发布到 ASP.NET MVC 控制器的问题
【发布时间】:2018-06-09 07:47:28
【问题描述】:

我在将数据从 Kendo 网格发布到 MVC 控制器时遇到问题。我尝试发布的具体操作如下所示:

public JsonResult Search(Credential searchParam)
{
    // Perform search
}

它接受的Credential对象是一个带有内部类的POCO,定义为:

public class Credential
{
    public class License
    {
        public string Prefix { get; set; }
        public string Number { get; set; }
        public string SubCategory { get; set; }

       // Constructors...
    }

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public License LicenseNumber { get; set; }

    // Constructors...
}

我认为我的问题在于 Kendo 网格如何发送 Credential 我的数据源定义为:

dataSource: {
    transport: {
        read: {
            url: Router.action("Search", "Index"),
            type: "post",
            contentType: "application/json",
            dataType: "json",
            data: {
                FirstName: $(".firstName").val(),
                LastName: $(".lastName").val(),
                LicenseNumber: {
                    Prefix: $(".cred1").val(),
                    Number: $(".cred2").val(),
                    SubCategory: $(".cred3").val()
                }
            }
        }
    },
    pageSize: 20
},

目前,控制器抛出一个错误,上面写着:Invalid JSON primitive: FirstName.

我尝试将字段名称用单引号和双引号括起来,并尝试使用JSON.stringify 发送相同的数据但无济于事。

我在这里做错了什么?

【问题讨论】:

  • 我猜,应该是缺少引号的问题

标签: javascript json asp.net-mvc post kendo-grid


【解决方案1】:

你试过了吗:

var license =  { 
                  LicenseNumber: {
                    'Prefix': $(".cred1").val(),
                    'Number': $(".cred2").val(),
                    'SubCategory': $(".cred3").val()
                  }
               }
var data = { 'FirstName': $(".firstName").val(), 'LastName': $(".lastName").val(), 'LicenseNumber': license }

dataSource: {
      // code
      data: JSON.stringify(data)
      // code
}

【讨论】:

    【解决方案2】:

    尝试以下操作(注意data 的附加引号):

    dataSource: {
        transport: {
            read: {
                url: Router.action("Search", "Index"),
                type: "post",
                contentType: "application/json",
                dataType: "json",
                data: "{
                    'FirstName': $(".firstName").val(),
                    'LastName': $(".lastName").val(),
                    'LicenseNumber': {
                        'Prefix': $(".cred1").val(),
                        'Number': $(".cred2").val(),
                        'SubCategory': $(".cred3").val()
                    }
                }"
            }
        },
        pageSize: 20
    },
    

    【讨论】:

    • @James_Parsons,如果有帮助,请不要忘记投票并将其标记为已接受 :)
    猜你喜欢
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多