500错误,发送JSON到控制器MVC

时间:2018-07-17 08:45:23

标签: asp.net-mvc visual-studio model-view-controller entity-framework-6 model-binding

我正在尝试将JSON数据发送到控制器,并使用该数据来修改数据库。

这是我的ajax调用:

    var ajaxresult = [];
    var table = $('<table>').addClass('table ');
    $('button').on('click', function () {
    $.ajax({
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        },
        type: 'GET',
        url: 'https://api.github.com/search/repositories?q=repos+topic:' + $(this).attr('id') + '&sort=stars&order=desc&per_page=10',
        success: function (data) {

        ajaxresult.push(data);
        debugger;

        table.empty();
        table.append("<thead><tr><th>Avatar</th><th>Name</th><th>Score</th><th>URL</th><th>Updated at</th></tr></thead>");
        $.each(data.items, function (i, object) {

            var row = $('<tr>').addClass('table-primary');
            row.append('<td><img src=' + object.owner.avatar_url + 'height=50px width=50px/></td>');
            row.append('<td>' + object.name + '</td>' + '<td>' + object.score + '</td>' + '<td>' + object.url + '</td>' + '<td>' + object.updated_at + '</td>');
            table.append(row);

        });
        table.append('</table>');
        $('table').replaceWith(table);
    }

   });

  });

$('#save').on('click', function () {
debugger;
$.ajax({

    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    type: 'POST',
    url: 'http://localhost:60294/Git/Updateto',
    data: ajaxresult,
    success: function (data) {
        alert('done');
    },
    error: function (data) {
        alert('error');
    }
});

});

这是我要向其发布数据的控制器:

[HttpPost]
    public async Task<IActionResult> Updateto(List<gitd> obj,gitd gitd )

    {
        if (ModelState.IsValid)
        {

            foreach (var item in obj)
            {
                item.AvatarURL = gitd.AvatarURL;
                item.Name = gitd.Name;
                item.Score = gitd.Score;
                item.Updatedat = gitd.Updatedat;
            }
            await _context.SaveChangesAsync();
        }

        return View(gitd);

    }

}

这是我要使用并将数据保存到数据库的模型:

public class gitd
    {
        public int ID { get; set; }
        public string AvatarURL { get; set; }
        public string Name { get; set; }
        public decimal Score { get; set; }
        public DateTime Updatedat { get; set; }

    }

每当调用POST请求时,使用调试器查看时,都会收到500 Internal错误。控件直接移至ajax函数的关闭位置。在JQUERY XML中,我看到数据未定义 handleobj未定义,并且所有发布数据都变为NULL。如何解决此问题? 由于ajaxresult是全局变量,因此#save按钮ajax调用中不应该包含json数据吗?为什么数据为NULL。

我还尝试在POST请求中提供以下数据:

 data:{
        "name":"John",
        "age":30,
        "cars":[ "Ford", "BMW", "Fiat" ]
       }

但错误仍然存​​在。

0 个答案:

没有答案