也许这不是最好的方法,但它确实有效。
// Here is your path
String p = photosLocation + "whatever.jpg";
// Here is the page address
String pa = Page.Request.Url.AbsoluteUri;
// Take the page name
String pn = Page.Request.Url.LocalPath;
// Here is the server address
String sa = pa.Replace(pn, "");
// Take the physical location of the page
String pl = Page.Request.PhysicalPath;
// Replace the backslash with slash in your path
pl = pl.Replace("\\", "/");
p = p.Replace("\\", "/");
// Root path
String rp = pl.Replace(pn, "");
// Take out same path
String final = p.Replace(rp, "");
// So your picture's address is
String path = sa + final;
编辑:好的,有人标记为没有帮助。一些解释:取当前页面的物理路径,将其分成两部分:服务器和目录(如c:\inetpub\whatever.com\whatever)和页面名称(如/Whatever.aspx)。图片的物理路径应该包含服务器的路径,所以“减去”它们,只留下图片相对于服务器的路径(如:\design\picture.jpg)。用斜杠替换反斜杠并将其附加到服务器的 url。