加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);
    }
}
    //...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读