【发布时间】:2014-05-09 21:12:57
【问题描述】:
我正在使用 RazorEngine 库生成 HTML 电子邮件。在 HTML 电子邮件中,我想包含我客户徽标的图像。但是,我无法显示它。我在 .cshtml 文件中定义了我的 html 模板。徽标图像位于“~/Images/Logo.png”中。我已验证图像文件已复制到服务器,复制到输出目录设置为始终复制。
所以我的问题是我应该如何在我的 .cshtml 中定义 src 属性的表达式?
<img src="@????"/>
编辑(我的解决方案):好的,我认为有一种直接的方法可以从 TemplateBase 中检索。我猜不会。因此,我只需使用 GetSiteRootUrl() 方法获取根站点 url 并将其添加到我的 Image 的 url 中,然后将其设置为我的模型类中的属性。
在模型类中
LogoImageUrl = GetSiteRootUrl() + "Images/logo.png";
.cshtml 定义
<img src="@Model.LogoImageUrl" />
获取网站根地址的方法
public static string GetSiteRootUrl()
{
var appPath = string.Empty;
//Getting the current context of HTTP request
var context = HttpContext.Current;
//Checking the current context content
if (context != null)
{
//Formatting the fully qualified website url/name
appPath = string.Format("{0}://{1}{2}",
context.Request.Url.Scheme,
context.Request.Url.Host,
context.Request.Url.Port == 80
? string.Empty
: ":" + context.Request.Url.Port
);
}
if (!appPath.EndsWith("/"))
appPath += "/";
return appPath;
}
【问题讨论】:
-
只需在实时网络服务器上输入一个 URL。
标签: c# asp.net razor html-email razorengine