我有一个视图(有一个或多个图像)我也想用作电子邮件的正文。服务于视图的模型使用Url.Content()
来检索绝对图像路径。这种方法适用于网页,但是当我呈现与电子邮件正文完全相同的视图时,则无法找到由呈现的html中的不完整路径建议的图像。
<img src="/Media/fe882a1d-3b77-4264-ab91-cade985ecbed.JPG"/>
我知道如果我可以使用
访问Url.Action
这样的完整网址,就可以修复此问题
Request.Url.Scheme
协议过载。有没有办法确定Url.Content
的完全限定网址?
答案 0 :(得分:1)
尝试编写自己的网址扩展方法,并在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