如何在邮件模板中使用 App.Resources
How to use App.Resources in a mail template
我正在使用 2sxc 表单应用程序发送电子邮件,但我需要在邮件模板中使用 App.Resoures。
我用这个:
var templateMailEngine = TemplateInstance("mailtemplate.cshtml");
var templateBody = templateMailEngine.Message(contactFormRequest, this).ToString();
private dynamic TemplateInstance(string fileName)
{
var compiledType = BuildManager.GetCompiledType(System.IO.Path.Combine("~", App.Path, fileName));
object objectValue = null;
if (compiledType != null)
{
objectValue = RuntimeHelpers.GetObjectValue(Activator.CreateInstance(compiledType));
return ((dynamic)objectValue);
}
throw new Exception("Error while creating mail template instance.");
}
和模板:
@helper Message(Dictionary<string,string> request, ToSic.SexyContent.IAppAndDataHelpers context)
{
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
body { font-family: Helvetica, sans-serif; }
</style>
</head>
<body>
<h1>@App.Resources.InformedConsent</h1>
</body>
</html>
}
只要我输入“@App.Resources.InformedConsent”,我就会得到一个 "Object reference not set to an instance of an object."
有没有办法实现这个?
所以您使用的是旧版本的 Mobius - 最新版本(仅在 github,将在接下来的几周内发布)使用 CreateInstance 来激活剃须刀。那里会更容易。
但在你的情况下,我认为上下文变量包含了一切。我想你可以 context.App.Resources.InformedConsent ;)
我正在使用 2sxc 表单应用程序发送电子邮件,但我需要在邮件模板中使用 App.Resoures。
我用这个:
var templateMailEngine = TemplateInstance("mailtemplate.cshtml");
var templateBody = templateMailEngine.Message(contactFormRequest, this).ToString();
private dynamic TemplateInstance(string fileName)
{
var compiledType = BuildManager.GetCompiledType(System.IO.Path.Combine("~", App.Path, fileName));
object objectValue = null;
if (compiledType != null)
{
objectValue = RuntimeHelpers.GetObjectValue(Activator.CreateInstance(compiledType));
return ((dynamic)objectValue);
}
throw new Exception("Error while creating mail template instance.");
}
和模板:
@helper Message(Dictionary<string,string> request, ToSic.SexyContent.IAppAndDataHelpers context)
{
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
body { font-family: Helvetica, sans-serif; }
</style>
</head>
<body>
<h1>@App.Resources.InformedConsent</h1>
</body>
</html>
}
只要我输入“@App.Resources.InformedConsent”,我就会得到一个 "Object reference not set to an instance of an object."
有没有办法实现这个?
所以您使用的是旧版本的 Mobius - 最新版本(仅在 github,将在接下来的几周内发布)使用 CreateInstance 来激活剃须刀。那里会更容易。
但在你的情况下,我认为上下文变量包含了一切。我想你可以 context.App.Resources.InformedConsent ;)