MVC Ajax Post 错误

MVC Ajax Post error

我在 post Ajax 请求控制器方法时遇到错误。在控制器方法中,我需要传递 Model class 对象。 但它给了我 500 个内部服务器错误。 谁能帮我改正一下?

Mu​​代码如下:

jQuery:

 var request = $("#frmHost").serialize();


$.ajax({
        url: "/Host/HostItemDetails/" ,
        type: "POST",
        datatype: 'json',
        contentType : "application/json",
        data: request,
        success: function (data) {
            if (data == '1111') {
                  ///Success code here
            }
            else if (data != '') {
                jAlert(data);
            }
        }
    });

Controller Method :
[HttpPost]
public JsonResult HostItemDetails(ClsHost objHost)
{
     //Code here
 return Json("1111");
}

我 运行 与您的代码相同 运行。 为了测试代码,我做了以下更改。我拿了一个按钮,在点击事件上我将 post 发送回控制器。 '[HttpPost]' 属性也很好。

你能确定一件事吗,frmHost 数据与 class ClsHost 匹配,但仍然不会导致服务器错误,错误会有所不同。

$(document).ready(function () {
    $("#clickMe").click(function () {
        var request = '{"Users":[{"Name":"user999","Value":"test"},{"Name":"test2","Value":"test"}]}';
        $.ajax({
            url: "/Home/HostItemDetails/",
            type: "POST",
            datatype: 'json',
            contentType: "application/json",
            data: request,
            success: function (data) {
                if (data == '1111') {
                    ///Success code here
                }
                else if (data != '') {
                    jAlert(data);
                }
            }
        });
    });

});

控制器:

[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult HostItemDetails(ClsHost objHost)
{
    //Code here
    return Json("111", JsonRequestBehavior.AllowGet);   
}

Nirav 试试这个,

将序列化数据解析为 JSON 对象,然后在发布时使用 JSON.stringify() 对其进行字符串化。

$("#Button").click(function () {
       var data = $("#frmHost").serialize().split("&");
       var request = {};
       for (var key in data) {
            request[data[key].split("=")[0]] = data[key].split("=")[1];
       }

       $.ajax({
            url: "/Home/HostItemDetails/",
            type: "POST",
            datatype: 'json',
            contentType: "application/json",
            data: JSON.stringify(request),
            success: function (data) {
               if (data == '1111') {
                  ///Success code here
               }
               else if (data != '') {
                  jAlert(data);
               }
            }
      });
  });

通过删除模型 class 中相同的 属性 名称即可解决。被我误加了两次