如何使用$ .Ajax方法将json从视图传递到控制器? [英] How to pass json from view to controller using $.Ajax method?

查看:78
本文介绍了如何使用$ .Ajax方法将json从视图传递到控制器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用$ .ajax方法从视图到控制器接收json对象,但我不知道为什么控制器中的接收对象显示空数据.

I want to receive json object from view to controller using $.ajax method but i dont know why the receive object in controller shows null data.

这是我的代码.

$("#Save").click(function (e) {

       $.ajax({ url: "Home/Save",
        type: "POST",
        datatype:'json',                
        data: ({movies:movies})
      });
});

其中电影是包含的javascript数组

where movies is javascript array which contains

    ({
    Name:"DDLJ",Stars:"SRK",Director:"Yashraj",Year:"2012"
    }, {Name:"K3G",Stars:"SRK",Director:"Karan",Year:"2010"}
)

我的控制器代码是:

public string Save (List<MovieDB> movies)
        {
         return "";
        }

其中MovieDB是我的模型类,具有属性

where MovieDB is my model class which have the properties

public class MoviesDB   
    {
        //public int MoviesID { get; set; }
        public string Name { get; set; }
        public string Stars { get; set; }
        public string Director { get; set; }
        public DateTime Year { get; set; }
    }

请建议我任何更好的方法来从视图到控制器接收json数据.

Please suggest me any better way to receive json data from view to controller.

实际上,我尝试将JavaScript数组对象从视图发送到我的数组代码所在的控制器操作方法中

Actully I try to send javascript array object from view to controller action method in which my array code is

<script type="text/javascript">
    var cnt = 1;
        var cnt2 = 1;
        var i;
        var movies = [];

    movies.push({ Name: $("#txtMovieName").val(), Stars: $("#txtStarCasts").val(), Director: $("#txtDirector").val(), Year: $("#txtYear").val(), Index: cnt++ });

                    $("#modelTable").empty();

                    $("#modelTemplate").tmpl(movies).appendTo($("#modelTable"));

                    $("#txtMovieName").val("");
                    $("#txtStarCasts").val("");
                    $("#txtDirector").val("");
                    $("#txtYear").val("");
                    $("#txtMovieName").focus();
                    e.preventDefault();
            });

  $("#Save").click(function (e) {

            //var jm = $.toJSON(movies);
            $.ajax({ url: "Home/Save",
                type: "POST",

                data: ({movies:movies})
                // contentType: 'application/json; charset=utf-8'
             });
        });

    </script>

现在,我想使用json或其他方式将电影javascript数组对象发送到控制器的Save()动作方法,请给我一些建议...

Now I want to send that movies javascript array object to Save() Action method of controller using any way like json or other please suggest me something...

推荐答案

 List<xyztype> lstid = new JavaScriptSerializer().Deserialize<List<xyztype>>(IDlist);

为我工作

从视图到控制器操作方法,这里xyztype是我的集合类类型,IDlist是我的json对象字符串

here xyztype is my collection class type and IDlist is my json objectstring from view to controller action method

通过使用javascriptserializer().deserializer<>,我们可以将json字符串转换为我们的自定义或系统数据类型对象

by using javascriptserializer().deserializer<> we can convert json string to our custom or system datatype object

例如:

  List<string> lstid = new JavaScriptSerializer().Deserialize<List<string>>(IDlist);

这篇关于如何使用$ .Ajax方法将json从视图传递到控制器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆