图像的动态路径不起作用..在ASP.Net?

时间:2013-12-23 05:53:50

标签: c# asp.net

我在asp.net中使用了Image标签,我想要从服务器上绘制动态路径,我正在使用转发器控件,而我在aspx.cs页面上的代码是

 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        string hotelid = ((Label)e.Item.FindControl("lblhotelid")).Text.ToString();
        dr = d.FetchDataReader("select hotelname,stateid,cityid from hotelmaster");
        if (dr.Read())
        {
            ((Label)e.Item.FindControl("lblhotelname")).Text = dr["hotelName"].ToString();
            string stateid, cityid;
            stateid = dr["stateid"].ToString();
            cityid = dr["Cityid"].ToString();

            Image img = (Image)e.Item.FindControl("imgHotels");
            img.ImageUrl = "~/http://bindassholidays.info/Photos/HotelPhotos" + stateid + cityid + hotelid + "~\"hotelid.jpeg";
        }
    }

但未找到图片..请检查 任何帮助应该是适当的...谢谢

4 个答案:

答案 0 :(得分:0)

首先,您需要调试代码并尝试检查代码生成的图像类型。它生成错误的网址,这就是你无法在那里看到图像的原因。

如果您使用 http:// 类型的网址,则无需放置〜/ 符号。如果您能够访问您的文件,如

http://bindassholidays.info/Photos/HotelPhotos/" + stateid + cityid + hotelid + "/hotelid.jpeg"

然后无需添加〜/

答案 1 :(得分:0)

可能会有效

img.ImageUrl = "http://bindassholidays.info/Photos/HotelPhotos/" + stateid + cityid + hotelid + "/hotelid.jpeg";

如果你知道图像的实际路径在任何浏览器上加载它,并通过打破上面的行来比较它的路径和路径。

答案 2 :(得分:0)

您正在使用Web应用程序根运算符(〜)。然而,你再次将它与绝对路径混合在一起。

我认为它应该像

img.ImageUrl = "~/Photos/HotelPhotos/" + stateid + cityid + hotelid + ".jpeg";

图像路径显然有问题。有关ASP.NET Web项目路径的详细信息,请参阅this MSDN link

答案 3 :(得分:0)

首先,我对此几乎没有问题和答案..

  1. 为什么使用静态路径?
  2. <强>答案:

    您可以使用以下函数获取相对URL,然后将您的iamge文件夹与

    组合
    public string GetWebUrl()
    {
        return HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpRuntime.AppDomainAppVirtualPath;
    }
    

    现在只需使用以下内容:

    GetWebUrl()+Photos/HotelPhotos/" + stateid+"/" + cityid +"/"+hotelid +"/"+"hotelid.jpeg";
    

    希望这适合你