获得绝对路径的图像通过电子邮件发送(get absolute path for an image t

2019-10-19 17:12发布

我有一个观点(与一个或多个图像),我也想作为电子邮件消息的正文使用。 服务视图模型使用Url.Content()来获取绝对图像路径。 这种方法工作正常的网页,但是当我呈现完全相同的视图作为电子邮件的正文,则图像不能被发现是通过从呈现的HTML不完整的路径建议。

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

我知道,这个问题是可以固定的,如果我可以访问完整的URL,例如与Url.Action

Request.Url.Scheme

过载协议。 有没有一种方法,以确定从完整的URL Url.Content

Answer 1:

尝试书面方式自己的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



文章来源: get absolute path for an image to send in email