gpt4 book ai didi

c# - 如何使用 RazorEngine 引用 中的图像文件来生成 HTML 电子邮件

转载 作者:行者123 更新时间:2023-11-30 14:56:30 25 4
gpt4 key购买 nike

我正在使用 RazorEngine 库生成 HTML 电子邮件。在 HTML 电子邮件中,我想包含我客户 Logo 的图像。但是,我无法显示它。我在 .cshtml 文件中定义了我的 html 模板。 Logo 图像位于“~/Images/Logo.png”中。我已验证图像文件已复制到服务器,复制到输出目录设置为始终复制。

所以我的问题是我应该如何在我的 .cshtml 中定义 src 属性的表达式?

<img src="@????"/>

编辑(我的解决方案):好的,我认为有一种直接的方法可以从 TemplateBase 中检索。我猜不会。所以我只是使用 GetSiteRootUrl() 方法获取根站点 url 并将其添加到我的图像的 url 之前,然后将其设置为我的模型类中的属性。

在模型类中

LogoImageUrl = GetSiteRootUrl() + "Images/logo.png";

.cshtml 定义

<img src="@Model.LogoImageUrl" />

获取站点根url的方法

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

最佳答案

“~” 通常表示 “使用此 Web 请求的根 URL”,并且由于电子邮件未附加到 Web 请求,因此无法解决该问题.相反,请使用您服务器的完整 URL。如果您在多个文件中使用它,我建议将它放入您的 web.config 文件中的 appSetting 中,这样您就可以更改它而无需查找替换一堆文件。

关于c# - 如何使用 RazorEngine 引用 <img src/> 中的图像文件来生成 HTML 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22746190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com