从aspx访问代码背后的列表元素

时间:2019-02-14 22:49:07

标签: c# asp.net

我对代码隐藏有以下方法

Public List<object> Exec()
{
    List<object> result = New List<object>();
    DataTable results = New DataTable();

    // methodToExecuteSP is = public DataSet 
    results = methodToExecuteSP;

    foreach (DataRow i in results.Rows)
    {
        result.Add(new { Name = i[“Name”] });
    }

    return result;
}

然后在我的aspx上,我有以下html和C#代码

<tbody>
    <% foreach (var item in Exec()) { %>
        <tr><td><%=item.Name %> </td></tr>
    <% } %>
</tbody>

这将显示以下错误消息:

  

对象不包含名称的定义。

我做错了什么?

PD:如果我将item.Name更改为item,我可以正确看到我的整个列表。

1 个答案:

答案 0 :(得分:1)

这是预期的行为。请注意,方法Exec的返回类型为object。此类型没有任何称为Name的属性。您需要将此返回类型更改为具有您要使用的属性Name的对象,或者如果要使用的唯一属性是{{1 }}。

第一种方法

List<string>

第二种方法

Name