c# – 在后面的代码中设置其url时无法呈现图像
发布时间:2020-12-16 01:56:30 所属栏目:百科 来源:网络整理
导读:当我用代码后面的URL设置图像时,它不起作用,我不知道为什么? if (File.Exists(Server.MapPath("~/Images/EmpQr/") + int.Parse(Session["userID"].ToString()) + ".PNG")) //It passes this condition { tr_res.Visible = true; img_res.ImageUrl = Server.
当我用代码后面的URL设置图像时,它不起作用,我不知道为什么?
if (File.Exists(Server.MapPath("~/Images/EmpQr/") + int.Parse(Session["userID"].ToString()) + ".PNG")) //It passes this condition { tr_res.Visible = true; img_res.ImageUrl = Server.MapPath("~/Images/EmpQr/" + int.Parse(Session["userID"].ToString()) + ".PNG"); //Here 's the problem,no image } else { tr_res.Visible = false; } <asp:Image ID="img_res" runat="server" AlternateText="result" /> 当我像这样设置图像网址时 ImageUrl ="~/Images/EmpQr/1345.PNG" 在设计视图中它的工作原理. 如何解决这个问题? 解决方法
Server.MapPath为您提供文件的本地路径.而你真正想要的是相对于应用程序根路径(在服务器上!).对于你已经拥有的东西,?/ Images / EmpQr /很好,所以只需附加文件名:
img_res.ImageUrl = string.Format("{0}{1}.PNG","~/Images/EmpQr/",int.Parse(Session["userID"].ToString())); 更新.出于好奇,在评论中讨论之后,这里是Image控件源代码的相关部分,它证明了?/ Images / …形式的url将被正确处理: protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); string text = this.ImageUrl; if (!this.UrlResolved) { text = base.ResolveClientUrl(text); } if (this.RenderingCompatibility >= VersionUtil.Framework45) { if (!string.IsNullOrEmpty(text) || base.DesignMode) { writer.AddAttribute(HtmlTextWriterAttribute.Src,text); } } else { if (text.Length > 0 || !base.EnableLegacyRendering) { writer.AddAttribute(HtmlTextWriterAttribute.Src,text); } } //... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |