【发布时间】:2011-08-26 16:31:11
【问题描述】:
伙计们,我遇到了这个问题......
我的 User 类有一个属性 UserType userType,如下所示:
public class User
{
public virtual int Id { get; set; }
public virtual string User { get; set; }
public virtual string Name { get; set; }
public virtual UserType userType { get; set; }
}
我不能像这样返回 JSON...
[HttpGet]
public JsonResult JSONUsers(string q)
{
IEnumerable<User> model = dataServ.Users.GetUsers( q );
return this.Json( new { Result = model }, JsonRequestBehavior.AllowGet );
}
我收到一个错误:
检测到循环引用 在序列化类型对象时 'System.Reflection.RuntimeModule'。
我收到此错误的原因是延迟加载(至少我是这么理解的),为了解决这个问题,我做到了:
public JsonResult JSON(string q)
{
List<User> model = new List<User>();
IEnumerable<User> users= dataServ.Users.Getusers( q );
foreach (var item in users)
{
User user = new User
{
Id = item.Id,
Name = item.Name
};
model.Add( user );
};
return this.Json( new { Result = model }, JsonRequestBehavior.AllowGet );
}
我认为这不是一个好的解决方案。在这种情况下,我只需要 de "Id" 和 "Name" 属性,但如果我需要所有属性怎么办?是不是要一张一张的抄? 谁能告诉我是否有更好的解决方案?
谢谢,
蒂亚戈
【问题讨论】:
标签: json asp.net-mvc-3 fluent-nhibernate