Ребята, у меня проблема с этим ...
Мой класс 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'.
Причиной, по которой я получаю эту ошибку, является Lazy-Load (по крайней мере, это то, что я понял), и, чтобы ее исправить, я сделал:
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", но что если мне понадобятся все свойства? Придется ли копировать по одному?
Кто-нибудь может сказать мне, если есть лучшее решение?
Спасибо
Тьяго