1

我有一个有效的网络邮件,我想发送一个嵌入的图像。

 LinkedResource imagelink = new LinkedResource(Server.MapPath(".") + @"..\Content\img\GladSmiley.png", "image/png");

当我使用上面的代码时,它将搜索位于 \projectname\content\img 文件夹中的图像的映射路径。但是 mappath 方法是在 \projectname\home\content\img 中寻找 img,所以由于某种原因,它会将主文件夹添加到 mappath 中:S 有没有办法解决这个问题?还是我做错了什么?

4

1 回答 1

1

试试这个:

LinkedResource imagelink = new LinkedResource(HostingEnvironment.MapPath("~/Content/img/GladSmiley.png"), "image/png");

相关位是您找到这样的目录/文件:

HostingEnvironment.MapPath("~/Content/img/GladSmiley.png")

如果你愿意,你也可以使用Server.MapPath完全相同的语法,但你需要一个 HttpContext 来做到这一点(你可能有,但为了让它总是工作,使用HostingEnvironment.MapPath)。

HostingEnvironment.MapPath("~/Content/img/GladSmiley.png") // works everywhere
Server.MapPath("~/Content/img/GladSmiley.png") // needs HttpContext

如果您有兴趣,请参阅此讨论以获取更多信息:Server.MapPath 和 HostingEnvironment.MapPath 有什么区别?

于 2013-09-18T07:49:02.683 回答