为了账号安全,请及时绑定邮箱和手机立即绑定

如何将JSON作为MVC 5操作方法参数接收

如何将JSON作为MVC 5操作方法参数接收

神不在的星期二 2019-12-26 13:57:38
我一直在尝试整个下午在网络上爬行,试图在动作控制器中接收JSON对象。什么是正确的或更简单的方法?我尝试了以下方法:1:    //Post/ Roles/AddUser    [HttpPost]    public ActionResult AddUser(String model)    {        if(model != null)        {            return Json("Success");        }else        {            return Json("An Error Has occoured");        }    }这给了我输入一个空值。2:    //Post/ Roles/AddUser    [HttpPost]    public ActionResult AddUser(IDictionary<string, object> model)    {        if(model != null)        {            return Json("Success");        }else        {            return Json("An Error Has occoured");        }    }这在尝试发布到它的jQuery方面给了我500错误?(这表示未正确绑定)。这是我的jQuery代码:<script>function submitForm() {    var usersRoles = new Array;    jQuery("#dualSelectRoles2 option").each(function () {        usersRoles.push(jQuery(this).val());    });    console.log(usersRoles);    jQuery.ajax({        type: "POST",        url: "@Url.Action("AddUser")",        contentType: "application/json; charset=utf-8",        dataType: "json",        data: JSON.stringify(usersRoles),        success: function (data) { alert(data); },        failure: function (errMsg) {            alert(errMsg);        }    });}我要做的就是在我的mvc动作中接收JSON对象?
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

这里有几个问题。首先,您需要确保将JSON对象绑定回控制器中的模型。这是通过更改来完成的


data: JSON.stringify(usersRoles),


data: { model: JSON.stringify(usersRoles) },

其次,您的jQuery调用没有正确绑定类型。如果删除


contentType: "application/json; charset=utf-8",

它会固有地绑定回字符串。


一起使用第一个ActionResult方法和以下jquery ajax调用:


    jQuery.ajax({

        type: "POST",

        url: "@Url.Action("AddUser")",

        dataType: "json",

        data: { model: JSON.stringify(usersRoles) },

        success: function (data) { alert(data); },

        failure: function (errMsg) {

        alert(errMsg);

        }

   });


查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 417 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信