是否可以使用匿名类型进行数据绑定?

Nib*_*Pig 6 c# asp.net repeater

我认为这是正确的术语......

基本上,我有一个转发器控件,以及一个检索一些项目的Linq查询.通常我会直接对查询进行数据绑定,并使用Eval用结果填充模板.

但是,它没有以完全正确的格式出现 - 例如,如果EndDate为null(它是一个DateTime?),那么我想用"Present"替换它.我在查询结果对象中只使用了几个属性.

我想知道是否有像这样的解决方案:

[pseudo madeup code]
var query = getResults();

List<anonymous> anonList = new List();

foreach (var q in query)
{
   string myEndDate = "";
   if (q.EndDate.HasValue) 
       { myEndDate = q.EndDate.ToString(); }
   else 
       { myEndDate = "Present"; }

   anonList.items.add(new { name=q.name, enddate=myEndDate };
}

repeater.Datasource = anonList;
Run Code Online (Sandbox Code Playgroud)

然后

<div><%#Eval("enddate")%></div>
Run Code Online (Sandbox Code Playgroud)

eri*_*len 2

您有两种声明结果列表的选项:

  1. 使用非泛型ArrayList,或
  2. 使用Enumerable.Repeat,即。var anonList = Enumerable.Repeat(new { name="", enddate=""}, 0).ToList();