我有一个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内容类型
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句