Not*_*ing 13 c# asp.net-mvc json
我在我的控制器中尝试了这个代码:
List<ProductListingModels> prom = new List<ProductListingModels>();
prom.Add(new ProductListingModels()
{
ID = item.ID,
Name = item.Name,
DepartmentID = item.DepartmentID.Value,
BrandID = item.BrandID.Value
});
jr.Data = prom;
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return Json(new
{
ja = jr.Data,
}, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)
这是我的ProductListingModel:
public class ProductListingModels:ItemEntityDataContext
{
public int ID { get; set; }
public string Name { get; set; }
public int DepartmentID { get; set; }
public int BrandID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是一个错误:
序列化类型的对象时检测到循环引用.
但是如果我从添加对象"prom"改为添加类似字符串或整数的东西,它就可以正常工作.我不知道如何添加我的对象会出现什么问题.
任何人都可以向我展示解决方案.欢迎您提出所有问题和答案,非常感谢.
Lef*_*une 17
我怀疑问题是引用ItemEntityDataContext超类可能持有其他对象.将数据复制到viewmodel类以传入视图始终是个好主意.但是在你的情况下,只需使用LINQ将字段选择为新的匿名类型并使用json进行序列化.像这样的东西:
jr.Data = prom.Select(p => new
{
ID = p.ID,
Name = p.Name,
DepartmentID = p.DepartmentID,
BrandID = p.BrandID
}).ToArray();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13383 次 |
最近记录: |