Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文件夹中检索ASP.NET图像_Asp.net_Image_Imageurl - Fatal编程技术网

从文件夹中检索ASP.NET图像

从文件夹中检索ASP.NET图像,asp.net,image,imageurl,Asp.net,Image,Imageurl,我正在尝试从文件夹中检索ASP.NET页面中的图像。图像采用JPEG格式,并带有ID标记,例如1、2、3等。我通过编程方式从web应用程序检索这些ID,并将信息保存在标签中 在我尝试使用的ASP.NET源代码页中 Image ID="Image1" runat="server" ImageUrl="<% "Figures/" & Me.lblid.Text & ".jpg"%>" Image ID=“Image1”runat=“server”ImageUrl=“”

我正在尝试从文件夹中检索ASP.NET页面中的图像。图像采用JPEG格式,并带有ID标记,例如1、2、3等。我通过编程方式从web应用程序检索这些ID,并将信息保存在标签中

在我尝试使用的ASP.NET源代码页中

Image ID="Image1" runat="server" ImageUrl="<% "Figures/" & Me.lblid.Text & ".jpg"%>" 
Image ID=“Image1”runat=“server”ImageUrl=“”
但是它不起作用。

您需要在表达式的开头添加一个“=”,如果根文件夹中有“Figures”,则需要使用“~”

<asp:Image ID="Image1" runat="server" 
     ImageUrl="<%= "~/Figures/" & Me.lblid.Text & ".jpg" %>" />

源代码无法以这种方式附加到页面web端的其他控件。为了实现这一点,您需要在后面的代码中完成这一点,在其他部分完成之后的某个时间点。我假设您正在使用某种数据绑定来完成此任务。一种简单的方法是使用Page_PreRender事件指定任何特定图像:

Protected Sub Page_PreRender(ByVal sender as Object, ByVal e as EventArgs)

    Me.Image1.ImageUrl = "~/Figures/" & lblid.Text & ".jpg"

End Sub

注意:根据@Amiram Korach

的建议,在url中添加了~以便动态解析url。您的项目中是否允许使用Javascript/jQuery?是的,可以使用Javascript。但是,图像的ID被填充到ASP.NET变量中,这可能需要一些变量通过JS/ASP.NET,反之亦然。
“/Figures/”
将始终由浏览器转换为
http://[host]/Figures
,这不一定正确,例如,如果您的站点位于
http://[host]/[sitename]/
下。您必须使用“~”符号。@AmiramKorach:这是可以理解的,但我对这个问题的理解是路径本身不是OP的问题,从标签中注入id是混淆点。其他答案似乎解决了这个问题,但没有考虑html源代码中指定的
lblid.Text
字段仅在
Page\u Load
上有效这一概念。任何后续的数据绑定或事件都将更改该值,并(很可能)在一个空白的ImageUrl.Yes中生成结果。在prerender中这样做听起来更好。@JoelEtherton您的解决方案奏效了。此外,我还按照AmiramKorach的建议添加了“~”符号。谢谢你们!