我在Controls文件夹下面有个控件,里面用到了datalist, 从数据库读图片地址显示图片。
控件里的datalist代码:
<asp:DataList ID="DataList1" runat="server"><ItemTemplate>
<asp:Label ID="CardIdLabel" runat="server" Text='<%# Eval("CardName") %>'></asp:Label>
<asp:ImageButton ID="ImageButton1" ImageUrl='<%# string.Format("~{0}", Eval("Thumbnail")) %>' runat="server" />
</ItemTemplate>
</asp:DataList>
上面的控件拖到aspx页面中时,image的url就会增加个"controls/". 原本"~images/1.jpg"的,aspx页面中成"controls/~images/1.jpg"
<asp:ImageButton ID="ImageButton1" ImageUrl='<%# string.Format("../{0}", Eval("Thumbnail")) %>' runat="server" />
将ImageUrl值改成在controls文件夹下面图片的相对路径,可以解决问题,不使用"~"定位。
或者把<asp:image>标签换成<img>标签可以使用"~"