首页 > 解决方案 > 将 json 对象发送到 jsonresult 控制器 asp.net mvc

问题描述

我正在向我的 mvc 控制器发送 ajax 请求。我正在向 mvc 控制器对象发送一个对象,它在那里显示为 null。

       function add()
        {

         var viftech =
           {
              "id": $("#id").val(),
               "name": $("#name").val(),
               "lastname": $("#lastname").val(),
               "address": $("#address").val()
        };
        var datasent = viftech;
        console.log(datasent);

        $.ajax({
            url: "/VIftech/insertemployee",
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(datasent),
            success: function(data) {
           data ? alert("It worked!",+response.i) : alert("It didn't work.");
           }
          });
    }

我的 mvc 控制器是这样的。注意 viftech 对象类具有相同的参数,例如 id、name、lastname 和 address。如果我指定多个这样的参数,我会得到值。

public JsonResult insertemployee(string id,string name,string 
 lastname,string address)

如果我指定对象,它总是为空,我使用了几种方法,但它不起作用。

public JsonResult insertemployee(Viftech viftech)
    {
        if (string.IsNullOrEmpty(viftech.name))
        {
            return Json("badreques", JsonRequestBehavior.AllowGet);
        }

        return Json(Viftechdb.add(viftech),JsonRequestBehavior.AllowGet);
    }

标签: jqueryajax

解决方案


您需要在对象中命名参数。该对象需要一个属性 viftech 来指示参数名称,否则它将尝试绑定到 id、name 和 lastname。

  var viftech =
               {viftech:{
                  "id": $("#id").val(),
                   "name": $("#name").val(),
                   "lastname": $("#lastname").val(),
                   "address": $("#address").val()
            }};
            var datasent = viftech;
            console.log(datasent);

            $.ajax({
                url: "/VIftech/insertemployee",
                type: "POST",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(datasent),
                success: function(data) {
               data ? alert("It worked!",+response.i) : alert("It didn't work.");
               }
              });

推荐阅读