Asp.net mvc 获取要在电子邮件中发送的图像的绝对路径

Asp.net mvc 获取要在电子邮件中发送的图像的绝对路径,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,filepath,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Filepath,我有一个视图(包含一个或多个图像),我也想将其用作电子邮件的正文。为视图提供服务的模型使用Url.Content()检索绝对图像路径。这种方法适用于web页面,但当我呈现与电子邮件正文完全相同的视图时,无法找到图像,这是由呈现的html的不完整路径所建议的 <img src="/Media/fe882a1d-3b77-4264-ab91-cade985ecbed.JPG"/> 协议的重载。有没有办法从URL.Content中确定完全限定的URL 尝试编写自己的url扩展方法,并在

我有一个视图(包含一个或多个图像),我也想将其用作电子邮件的正文。为视图提供服务的模型使用
Url.Content()
检索绝对图像路径。这种方法适用于web页面,但当我呈现与电子邮件正文完全相同的视图时,无法找到图像,这是由呈现的html的不完整路径所建议的

 <img src="/Media/fe882a1d-3b77-4264-ab91-cade985ecbed.JPG"/>

协议的重载。有没有办法从
URL.Content
中确定完全限定的URL

尝试编写自己的url扩展方法,并在
Uri.GetLeftPart&UriPartial.Authority的帮助下解析

public static class UrlExtensions
{
  public static string AbsoluteContent(this UrlHelper urlHelper
                                     , string contentPath)
  {
   Uri requestUrl = urlHelper.RequestContext.HttpContext.Request.Url;

   string absolutePath = string.Format("{0}{1}",
                          requestUrl.GetLeftPart(UriPartial.Authority),
                          urlHelper.Content(contentPath));
   return absolutePath;

  }

}

然后在页面中使用
Url.AbsoluteContent(“~/media/image.jpeg”)
。它将呈现
http://domain/media/image.jpeg

是否已确定图像的名称?为什么不试试Server.MapPath
public static class UrlExtensions
{
  public static string AbsoluteContent(this UrlHelper urlHelper
                                     , string contentPath)
  {
   Uri requestUrl = urlHelper.RequestContext.HttpContext.Request.Url;

   string absolutePath = string.Format("{0}{1}",
                          requestUrl.GetLeftPart(UriPartial.Authority),
                          urlHelper.Content(contentPath));
   return absolutePath;

  }

}