图像按钮不显示图像

时间:2012-02-03 07:54:57

标签: c# asp.net

单击按钮后,我的image1将显示图像;

当我将imagePath设置为

Server.MapPath("~/SME IMAGE/anonymous_avatar.gif");

我的网址不起作用

但是当我设定路径时

"~/SME IMAGE/anonymous_avatar.gif"

我的网址

基本上我的Server.MapPath会发生什么?

    try
    {

        string imagePath = Server.MapPath("~/SME IMAGE/anonymous_avatar.gif");
        Image1.ImageUrl = imagePath;
        Response.Write("success");
    }
    catch (Exception ex)
    {
        Response.Write(ex.Message.ToString());
    }

3 个答案:

答案 0 :(得分:0)

尽量不要设置Server.MapPath - 只需使用:

Image1.ImageUrl = "~/SME IMAGE/anonymous_avatar.gif";

也许确保网址存在,并且可能会添加%20而不是路径中的空格。 (还要尽量避免路径中的空格)

答案 1 :(得分:0)

Server.MapPath它将“网络”路径转换为您的本地路径。
所以Server.MapPath("Server.MapPath")它会给出文件的本地位置。
您将此内容分配给ImageUrl属性,但这会转换为类似"www.mywebsite.com/C:\wwwroot\somefile.gif"

的内容

答案 2 :(得分:0)

Server.MapPath返回与Web服务器上指定虚拟路径对应的物理文件路径。所以当你设置

string imagePath = Server.MapPath("~/SME IMAGE/anonymous_avatar.gif");

它可能返回类似C:\Inetpub\wwwroot\website\SME IMAGE\anonymous_avatar.gif的内容,它实际上是文件的物理路径。

Image.ImageUrl属性接受要在Image控件中显示的图片的网址。您可以使用相对或绝对URL。 MSDN说:

  

相对URL将图像的位置与位置相关联   Web页面未指定服务器上的完整路径。该   path是相对于Web页面的位置。这使它更容易   将整个站点移动到服务器上的另一个目录而不用   更新代码。绝对URL提供完整路径,因此   将站点移动到另一个目录需要您更新   代码。