繁体   English   中英

无法将JSON数据发送到MVC控制器

[英]Unable to send JSON data to MVC controller

我有一个JavaScript函数,如下所示:

function exportToExcel() {
    $.ajax({
        url: "/eBird/ExportToExcel",
        data: jsonSightingData,
        type: 'POST',
        contentType: 'application/json'
    });
} 

我的MVC控制器如下所示:

    public ActionResult ExportToExcel(List<Entities.MyClass> data)
{
    try
    {
        ...
    }
    catch (System.Exception exception)
    {
       ...
    }

MyClass的定义是:

   public class MyClass
    {
        public string comName { get; set; }
        public int howMany { get; set; }
        public double lat { get; set; }
        public double lng { get; set; }
        public string locID { get; set; }
        public string locName { get; set; }
        public bool locationPrivate { get; set; }
        public string obsDt { get; set; }
        public bool obsReviewed { get; set; }
        public bool obsValid { get; set; }
        public string sciName { get; set; }
    }

该类完全匹配传入的JSON数据。 问题在于,当调用我的控制器方法时,“数据”始终为NULL。 我的理解是,MVC模型绑定程序将自动将JSON数据绑定到MyClass列表。 但是它似乎没有用。

JSON示例如下:

[{"comName":"Great Black-backed Gull","lat":42.4613266,"lng":-76.5059255,"locID":"L99381","locName":"Stewart Park","locationPrivate":false,"obsDt":"2014-09-19 12:40","obsReviewed":false,"obsValid":true,"sciName":"Larus marinus"}]

使用通用对象(如JContainer)“捕获”传入的数据。 如果您不确定所得到的,甚至是对象。 然后看看里面有什么。 我使用外部解串器将json转换回类。 (使用.ToString()使它对序列化程序可读)

(尝试Json.Net)

另外-确保JSON不会转换为Unicode。 我也有这个问题。

另一句话-我认为内容类型应该是application / json。 阅读: SO有关json内容类型

运行Fiddler并捕获发送到控制器的Json。 控制器需要一个列表,但是看起来您正在发送单个对象。 由于我们中的许多人而发生的事情是空的。 我会尝试并运行您所拥有的。 您还可以把控制器弄乱,只给它MyClass吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM