单击按钮后,我的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());
}
答案 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提供完整路径,因此 将站点移动到另一个目录需要您更新 代码。