ASP.NET中继器绑定List <string>

我将List<string>绑定到Repeater控件。 现在我想用Eval函数来显示ItemTemplate的内容

 <%# Eval("NAME") %>. 

但是我不确定我应该用什么来代替NAME。

只需使用<%# Container.DataItem.ToString() %>

如果你担心空值,你可能需要重构(.NET 6+)

 <asp:Repeater ID="repeater" runat="server"> <ItemTemplate> <%# Container.DataItem?.ToString() ?? string.Empty%> </ItemTemplate> </asp:Repeater> 

请注意,如果您使用的是低于.NET 6,则不能使用空条件运算符 Container.DataItem?.ToString()

将ItemType设置为System.string

 <asp:Repeater ItemType="System.string" runat="server"> <ItemTemplate> <%# Item %> </ItemTemplate> </asp:Repeater> 
 rptSample.DataSource = from c in lstSample select new { NAME = c }; 

在你放的中继器

 <%# Eval("NAME") %> 

这应该工作得很好:

 <ItemTemplate> <%=this.GetDataItem().ToString() %> </ItemTemplate> 

你必须在这里使用数据库语法,否则将无法工作。

 <%# this.GetDataItem().ToString() %> 

基于@RobertoBr提供的LINQ的更完整的示例:

在后面的代码中:

 List<string> notes = new List<string>(); notes.Add("Value1") notes.Add("Value2") repeaterControl1.DataSource = from c in notes select new {NAME = c}; repeaterControl1.DataBind(); 

在页面上:

  <asp:Repeater ID="repeaterControl1" runat="server" > <ItemTemplate> <li><%# Eval("NAME") %></li> </ItemTemplate> </asp:Repeater>