将JavaScript对象导入我的控制器:我在这里缺少什么?

时间:2015-06-15 22:15:15

标签: c# asp.net ajax json asp.net-mvc

我尝试运行

时收到500 (Internal Server Error)
    $.ajax({
        xhr: function() {
            var xhr = new window.XMLHttpRequest();
            return xhr;
        },
        type: 'POST',
        url: '@Url.Action("MyAction","MyController")',
        data:  fi,
        contentType: "application/json; charset=utf-8",
        dataType: "json", // dataType is json format
        success: function(retJson) {
            // ...

        }
    });

其中fi{org: "string1", cat: "string2", fileName: "string3"}之类的JavaScript地图,而myAction就像

    [HttpPost]
    public async Task<JsonResult> myAction (FileInfo fi)
    {

其中FileInfo

定义
    public class FileInfo
    {
        public string org { get; set; }
        public string cat { get; set; }
        public string fileName { get; set; }
    }

知道我在这里失踪的是什么吗?

1 个答案:

答案 0 :(得分:1)

问题在于定义JSON对象的方式。

它应该有道具名称的单引号,如下所示:

 {'org': 'string1', 'cat': 'string2', 'fileName': 'string3'}