【发布时间】:2018-03-27 13:53:43
【问题描述】:
我有一个 ASP.Net MVC 5 应用程序和一个控制器中的方法,它返回一个 JsonResult。在该方法内部,名为myData 的变量检索IList<customer>。
客户对象是这样的:
public class customer
{
public int custId {get; set;}
public string custName {get; set;}
public virtual ICollection<address> addresses{ get; set; }
}
然后我创建一个匿名类型并将其作为 Json 返回。见下文。
public JsonResult GetData()
{
var myData = _myService.GetAll().Select(x => new
{
custId = x.custId,
custName = x.custName
}).ToList();
return Json(myData, JsonRequestBehavior.AllowGet);
}
这可行,但是,我的问题是在我的匿名类型中,我还需要引用 addresses 集合。 address 类如下所示:
public class address
{
public int addressId {get; set;}
public int custId {get; set;}
public string addressName {get; set;}
public virtual customer cust { get; set; }
}
在我的匿名类型中我需要做的是让客户addressName,其中可能有多达三个。
所以,是这样的:
public JsonResult GetData()
{
var myData = _myService.GetAll().Select(x => new
{
custId = x.custId,
custName = x.custName,
custAddresses = x.addresses.All().addressName
}).ToList();
return Json(myData, JsonRequestBehavior.AllowGet);
}
显然,像这样尝试获取所有客户地址名称是行不通的,这就是我卡住的地方。
有人可以帮忙吗?
谢谢。
【问题讨论】:
-
x.addresses.Select(address => address.addressName)有什么问题? -
var allAddresses = IEnumerable() // 你的地址函数在这里;进入 myData new { custAddresses = allAddresses }.ToList();返回 Json(myData)
-
@Jordi 此代码无法编译。
-
这只是一个想法,基本上他必须将他拥有的地址集合放入新的匿名Json custAddresses = allAddresses。
-
谢谢安德烈,不知道我为什么不这样做!
标签: c# json ajax asp.net-mvc anonymous-types