我认为这是正确的术语...是否可以使用匿名类型进行数据绑定?
基本上,我有一个中继器控件和一个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;
然后
<div><%#Eval("enddate")%></div>
有没有办法做到这一点不把所有的逻辑是线上?它可以使它非常不可读,特别是如果你合并了两个可能为空的字符串,例如`fullname = q.user.title + q.user.firstname + q.user.lastname;`如果用户为空,它会失败,并且执行三个内联检查并将它们组合成一个变量是非常可怕的。 – NibblyPig 2011-02-16 13:58:34