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;
}
}