0

在 .ascx.cs 我有这个代码,例如:

var xDoc = XDocument.Parse(xml); //or XDocument.Load(fileName)
var list =  xDoc.Descendants("ordinanza")
                .Select(n => new
                {
                    Numero = n.Element("numero").Value,
                    Titolo = n.Element("titolo").Value,
                })
                .ToList();

好吧,现在我想在我的 .ascx 上“foreach”这个匿名类型,但我不能使用 protected/public for list(因为 is var)。

那么,我该怎么做呢?

4

1 回答 1

3

您提取的数据是较大实体的缩减版本,并且您在视图中使用此数据。在 MVC 或 MVP 术语中,这将是一个视图模型(一种用于在 UI 中显示数据的数据传输对象)。

您可以做的是创建一个简单的轻量级类(视图模型)来保存这些数据:

public CustomerContactViewModel()
{
    public string Name { get; set; }

    public string Phone { get; set; }
}

然后将您的 LINQ 查询更新为:

IEnumerable<CustomerContactViewModel> custQuery =
    from cust in customers
    where cust.City == "Phoenix"
    select new CustomerContactViewModel() { Name = cust.Name, Phone = cust.Phone };
于 2012-10-18T08:11:34.577 回答