Asp.net mvc 4 在webmail中发送嵌入图像

Asp.net mvc 4 在webmail中发送嵌入图像,asp.net-mvc-4,Asp.net Mvc 4,我收到一封正在工作的网络邮件,我想发送一张嵌入的图像 LinkedResource imagelink = new LinkedResource(Server.MapPath(".") + @"..\Content\img\GladSmiley.png", "image/png"); 当我使用上面的代码时,它将搜索位于\projectname\content\img文件夹中的图像的映射路径。但是mappath方法正在\projectname\home\content\img中查找img,因此

我收到一封正在工作的网络邮件,我想发送一张嵌入的图像

 LinkedResource imagelink = new LinkedResource(Server.MapPath(".") + @"..\Content\img\GladSmiley.png", "image/png");
当我使用上面的代码时,它将搜索位于\projectname\content\img文件夹中的图像的映射路径。但是mappath方法正在\projectname\home\content\img中查找img,因此出于某种原因,它将主文件夹添加到mappath中:S有办法解决此问题吗?还是我做错了什么

试试这个:

LinkedResource imagelink = new LinkedResource(HostingEnvironment.MapPath("~/Content/img/GladSmiley.png"), "image/png");
相关的一点是,您可以找到如下目录/文件:

HostingEnvironment.MapPath("~/Content/img/GladSmiley.png")
如果需要,您也可以使用完全相同的语法使用
Server.MapPath
,但您需要一个HttpContext来实现这一点(您可能已经有了,但为了使它始终工作,请使用
HostingEnvironment.MapPath

如果您感兴趣,请参阅本讨论了解更多信息:

请尝试以下方法:

LinkedResource imagelink = new LinkedResource(HostingEnvironment.MapPath("~/Content/img/GladSmiley.png"), "image/png");
相关的一点是,您可以找到如下目录/文件:

HostingEnvironment.MapPath("~/Content/img/GladSmiley.png")
如果需要,您也可以使用完全相同的语法使用
Server.MapPath
,但您需要一个HttpContext来实现这一点(您可能已经有了,但为了使它始终工作,请使用
HostingEnvironment.MapPath


如果您感兴趣,请参阅此讨论以了解更多信息:

这很奇怪(我想我可能是打错了或是记错了什么)。如果使用
Server.MapPath
HostingEnvironment.MapPath
,是否会出现相同的错误?怎么了?我确实打错了。是的,同样的错误。“\Content\img\GladSmiley.png”这给了我一个错误“bad compile constant error”,当我搜索它时,我得到了一些关于转义和使用双\like“\\Content\\img\\GladSmiley.png”的信息,但这不起作用eitherOkej,现在我得到了“可能的'null'赋值给标记有'notnull'属性的实体”您是否像我在示例中使用的那样使用前斜杠?他们不需要逃跑。在MapPath位中,您需要
“~/Content/img/GladSmiley.png”
这很奇怪(我想我可能是输入错误或记错了什么)。如果使用
Server.MapPath
HostingEnvironment.MapPath
,是否会出现相同的错误?怎么了?我确实打错了。是的,同样的错误。“\Content\img\GladSmiley.png”这给了我一个错误“bad compile constant error”,当我搜索它时,我得到了一些关于转义和使用双\like“\\Content\\img\\GladSmiley.png”的信息,但这不起作用eitherOkej,现在我得到了“可能的'null'赋值给标记有'notnull'属性的实体”您是否像我在示例中使用的那样使用前斜杠?他们不需要逃跑。在您想要的映射路径位中
“~/Content/img/GladSmiley.png”