Анонимный тип для вложенного повторителя (ASP .NET)

У меня есть два вложенных репитера на моей странице * .aspx.

<asp:Repeater runat="server" id="rptMain">
    <ItemTemplate>
       <h1><%#DataBinder.Eval(Container.DataItem, "Name")%></h1>
         <asp:Repeater runat="server" DataSource='<%# getUser(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "FieldKey"))) %>'>
           <HeaderTemplate><ol></HeaderTemplate>
            <ItemTemplate>
              <li class="<%#DataBinder.Eval(Container.DataItem, "CSSStyle")%>" id="li<%#DataBinder.Eval(Container.DataItem, "FieldKey")%>">
                 <%#DataBinder.Eval(Container.DataItem, "NameSubject")%>
              </li>
           </ItemTemplate>
           <FooterTemplate></ol></FooterTemplate>
         </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

getUser - это защищенный метод. Он должен возвращать список со следующими свойствами:

  1. CSSClass
  2. FieldKey
  3. NameSubject

Но свойство CSSClass определено в анонимном типе.

protected List<????> getUser(int id)
{
  DataClassesDataContext datacontext = new DataClassesDataContext();
  var t1= from t in datacontext.GetAllCustomSubject(id).ToList()
          select new { t.NameSubject, t.FieldKey, CSSStyle = t.IsDeleted ? "deleted hidden" : "real visible" };
  return  t;
}

Как мне вернуть такой Список? Какой тип данных я могу использовать вместо ???? ? В общем, могу ли я использовать вложенные повторители с анонимными типами?


person Sir Hally    schedule 12.08.2010    source источник


Ответы (1)


Что ж, я подозреваю, что ретранслятору все равно, так что просто объявите, что он возвращает IEnumerable.

person Jon Skeet    schedule 12.08.2010
comment
Не могли бы вы прояснить это? защищенный IEnumerable ‹что?› getUser Может быть, я неправильно понял? - person Sir Hally; 12.08.2010
comment
@Amber: Просто IEnumerable, неуниверсальный тип в System.Collections. - person Jon Skeet; 12.08.2010