如何使用json.stringify将对象列表从视图传递到MVC控制器

我尝试使用以下代码,但在控制器端显示null。

视图:

 function getme(){ debugger; var emp = [ { empid: 1, name: 'sasi' }, { empid: 2, name: 'sathish'} ]; emp = JSON.stringify({ 'emp': emp }); $.ajax({ contentType: 'application/json; charset=utf-8', dataType: 'json', type: 'POST', url: '/Home/getemplist', data: JSON.stringify(emp) }); }   

控制器:

 public void getemplist(List emp) { } 

Emp.cs:

 public class Emp { public int empid { get; set; } public string name{get;set;} } 

经过谷歌的大量搜索..我找到了将对象列表发布到控制器的方法..我在我的代码中修改了一点……这里是!!

脚本:

 var emp = [{ 'empid': 1, 'name': 'sasi' },{ 'empid': 2, 'name': 'sathish'}]; emp = JSON.stringify(emp) $.post("/Home/getemplist/", { 'emp': emp }) 

控制器:

这里我只是将参数更改为字符串类型。 使用JavaScriptSerializer,您可以将此字符串数据转换为类列表对象..如果您看到我的代码,您可以更好地理解它:

  public void getemplist(string emp) { List personData; JavaScriptSerializer jss = new JavaScriptSerializer(); personData = jss.Deserialize>(emp); // DO YOUR OPERATION ON LIST OBJECT } 

在控制器中包含此(System.Web.Script.Serialization)命名空间,以便使用JavaScriptSerializer类。

希望这可以帮助 !! 快乐编码:)

您要发送到服务器的数据存在问题。 你不需要JSON.stringify 2次。

  function getme() { debugger; var emp = [ { empid: 1, name: 'sasi' }, { empid: 2, name: 'sathish' } ]; emp = JSON.stringify({ emp: emp });//make json string once $.ajax({ contentType: 'application/json; charset=utf-8', dataType: 'json', type: 'POST', url: '/Home/getemplist', data: emp //send it to server }); }