前台取得后台返回的json数据!


1、传递的是单个对象类型

先看后台action方法

public ActionResult GetValue() 
{ 
ChangePasswordModel model1 = new ChangePasswordModel(); 
model1.OldPassword = "111"; 
model1.NewPassword = "222";

   return this.Json(model1);//返回对象到前台

}

这样返回的model1对象就会传递到result中去,前台可以直接使用result.NewPassword来取值

如下

$.ajax( 
{ 
url: "GetValue", //表示提交给的action 
type: "post",   //提交方法 
datatype: "json",//数据类型

success: function (result) { //返回的结果自动放在resut里面了

alert(result.NewPassword); 
} 
});

2、传递的是对象数组也就是List集合,这里演示遍历数据,并异步刷新表格

后台获取对象集合

public ActionResult GetValue() 
{

StudentService studentservice = new StudentService(); 
string studentlist= studentservice.SelectAll(); 
return this.Json(studentlist);

}

前台获取数据并刷新表格

3、参数传递(另外的代码例子说明)

对于单个参数传递或者不同对象的参数可以直接使用{"key":value};的方式来传值

 
 $.ajax(
                     {

                         url: "update",

                         type: "post",

                         datatype: "json",

                         data:{"room_id":inputobj[0].innerText,"room_name":inputobj[1].innerText,"room_type":inputobj[2].innerText,

                             "room_limittime": inputobj[3].innerText, "username": inputobj[4].innerText, "room_state": inputobj[5].innerText

                         }, 

                         success: function (result) { //返回的结果自动放在resut里面了

                             if (result) {

                                alter();

                             }

                         }

                     });

后台使用 FormContext对象来获得参数

public ActionResult Update(FormCollection fc) 
{ 
//获取前段传过来的参数 
RoomModel room = new RoomModel(); 
room.RId =Convert.ToInt32(fc["room_id".Trim()]); 
room.RName = fc["room_name".Trim()]; 
room.RType = fc["room_type".Trim()]; 
room.RLendLimitTime = Convert.ToInt32(fc["room_limittime".Trim()]);
}

这里看到传递多个参数的时候,前台和后台都很麻烦,能不能像页面表单一样直接可以把model对象给传递回去Controller呢?

当然这是可以的

把这些值封装一下就可以了,例如