Ajax传递复杂的参数语法

时间:2015-10-16 15:17:27

标签: jquery json ajax asp.net-mvc

我正在使用ajax帖子并将json对象作为参数传递给mvc控制器

我注意到如果我用这种方式调用ajax就可以了。

"%path:;=";"%"

但是呼叫失败了

vm.updateRoom = function(ctx){
    var test = ko.toJSON(ctx);
        return $.ajax(
                {
                    type: "POST",
                    contentType: 'application/json; charset=utf-8',
                    url: 'myUrl',
                    data: test
                }).success(function (data) {
                    //...
                }).fail(function (xhr,error,status) {
                    //...
       }); 
    }

我检查了xhr含量,在第一种情况下我检查了json对象,在第二种情况下是%7B%22Id%22%3A%221%22%2C%2 ...字符串。 控制器期望复杂对象作为参数。

如何设法使用第二种语法传递json对象?

1 个答案:

答案 0 :(得分:0)

vm.updateRoom= function(ctx){
    var test = ko.toJSON({room:ctx}); //some js variable 

    if(validator1 && validator2 && validator3 && validator4){
        return $.ajax(
                {
                    type: "POST",
                    contentType: 'application/json; charset=utf-8',
                    url: 'room/update',
                    data: test
                }).success(function (data) {
                      //...
                }).fail(function (xhr,error,status) {
                      //..
       }); 
    }
};

为了完整性我在这里添加了一个示例控制器动作片段......

  public class RoomController : Controller
    {
        ...
        [HttpPost]
        public ActionResult Update(Room room)
        {
            ...
        }
    }