http://www.cnblogs.com/yipeng-yu/archive/2012/05/25/2517584.html
$.getJSON("ForListTypeValue",function(data){});中ForListTypeValue是view的名称么?
@bjbs08: Action 的名称
return Json(object);
return Json(obj);
obj为实体,
前台使用时,直接$.parseJSON(obj).属性
你如果过用ajax接受,success:function(data){
eval("data",data);
......现在data随便你操作了
}
比如说你有一个List类型的列表A需要从Controller传递到View,可以这样写:
Controller中:
JavaScriptSerializer serializer = new JavaScriptSerializer(); ViewData["dataA"] = serializer.Serialize(A);
View中:
@ViewData["dataA"]
这样前台取到的数据 被解析成 '{"Id":1,"ParentId":null,即 "被解析为"
还有回车符等,jquery有什么函数可以转换成正常的字符串吗,难道只能用replace?
@engtech: 我是用的replace,将"替换成双引号。
@sikla: 哦 我这边有个需求 需要同步return View()的时候返回一些Json数据,没有用异步,用ajax来获取就不会有这个问题了
$.ajax({ url: '/InqueryAllReward/GetDetial/', data: { 'year': _year, 'month': _month, 'name': saler }, type: 'get', success: function (data) { $("#_content").html(data); }, error: function () { alert("failed"); } })
这里可以取到后台返回的Json数据
针对一、
public static class ObjectExtentions { /// <summary> /// 为Oject对象增加ToJsonString方法(注意对项目添加Newtonsoft.Json.dll引用) /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string ToJsonString(this Object obj) { JsonSerializerSettings jsSettings = new JsonSerializerSettings(); jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; return JsonConvert.SerializeObject(obj, jsSettings); } }
对你的结果集用一下 return Content(result.ToJsonString());
针对二、取数据比较简单,直接举个例子你就知道了
//绑定数据
function BindData(userid) { if (userid != "") { $.getJSON("/System/User/BindUser", { id: userid, randnum: Math.floor(Math.random() * 1000000) }, function (data) { $("#userid").val(data.USERID); $("#txtLoginNo").val(data.LOGINNO); $("#txtPwd").val(data.PASSWORD); $("#txtRePwd").val(data.PASSWORD); $("#txtUserName").val(data.USERNAME); $("#cboGroup").combotree('setValue', data.GROUPID=='0'?'-99':data.GROUPID); $("#txtTel").val(data.TEL); $("#txtMobile").val(data.MOBILE); $("#txtEmail").val(data.EMAIL); $("#txtRemark").val(data.REMARK); $("#cboJobType").combobox('setValue', data.JOBTYPE == null ? '-99' : data.JOBTYPE); $("#cboUserStatus").combobox('setValue', data.USERSTATUS == '0' ? '-99' : data.USERSTATUS); }); } }
后台:
return Json(new{validate="true",message="success"});
前台:
$.ajax({
url:"",
type:"post",
success:function(data,text){
alert(data.validate);
alert(data.message);
}
});