第一种方法:使用Newtonsoft.Json中的方法注释,在Json序列化的时候忽略导航属性
例:using Newtonsoft.Json;
public class Users
{
public int Id { get; set; }
public string LoginId { get; set; }
public string LoginPwd { get; set; }
[JsonIgnore]
public virtual ICollection Roles { get; set; }
}
第二种方法:将要序列化的对象转为匿名对象去掉导航属性
例:var userList = UsersService.GetEntityByPage(pageIndex, pageSize, out recordCount, u =>u.LoginId.Contains(uName), c => c.Id, true);
var data = userList.Select(d => new
{ d.Id,
d.LoginId,
d.LoginPwd
}).ToList();
return Json(new { rows = data, total = recordCount }, JsonRequestBehavior.AllowGet);
第三种方法:通过设置APP_Start文件夹中的WebApiConfig.cs
例: var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;