0

我正在使用列表视图来显示我网站的所有用户的列表。一个用户可以上传多个图像,所以当我使用实体框架生成模型时,创建了 2 个实体:用户和图像。用户有一个图像集合的导航属性,而图像有一个单个用户的导航属性。

我现在正试图在我的列表视图 1 中显示用户上传的图像(如果他上传了任何图像)。显示哪一张都没有关系。

我创建了一个 EntityDataSource,并将“图像”添加到它的包含属性中。然后,我将我的列表视图分支到数据源。通常,为了显示导航属性的内容,我使用类似的东西

<asp:Label ID="fn" runat="server" Text='<%# Eval("Users.Firstname") %>' />

但是,由于它是我要显示的集合的列,我可以使用这样的东西吗?如果是这样,管理用户没有上传任何图像的情况的正确方法是什么?

<asp:image ID="img" runat="server" ImageUrl='<%# Eval("Images[0].path") %>' AlternateText="" />

4

1 回答 1

0

Eval正在使用反射,它在更复杂的术语上有其局限性。你不应该害怕直接投射:

 <asp:image ID="img" runat="server" 
  ImageUrl='<%# ((YourObjectType)Container.DataItem).Images[0].path") %>' 
  AlternateText="" />

请注意,为了强制转换,YourObjectType您可能必须向<@Import >页面添加指令(或者使用完整的类型名称,包括命名空间)。

于 2012-09-18T18:00:43.513 回答