Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VS2010中使用T4创建HTML电子邮件正文_Html_Email_Templates_Dynamic_T4 - Fatal编程技术网

在VS2010中使用T4创建HTML电子邮件正文

在VS2010中使用T4创建HTML电子邮件正文,html,email,templates,dynamic,t4,Html,Email,Templates,Dynamic,T4,我不熟悉.NET文本转换,我正在尝试使用t4生成动态电子邮件正文 所以,给你们一个例子,我有一个例程,它正在构建一个字符串,如下所示。如何将其转换为t4模板而不是StringBuilder字符串。它是运行时模板还是设计时模板 private string BuildClosingContents(string legalBrand, string legalPhone, string legalURL, string tr

我不熟悉.NET文本转换,我正在尝试使用t4生成动态电子邮件正文

所以,给你们一个例子,我有一个例程,它正在构建一个字符串,如下所示。如何将其转换为t4模板而不是StringBuilder字符串。它是运行时模板还是设计时模板

private string BuildClosingContents(string legalBrand, string legalPhone, 
                                    string legalURL, string transText, string instructText, MyMail.Setting emailConfig)
{
    StringBuilder sbHTML = new StringBuilder();
    sbHTML.AppendLine("<div id=\"closingText\">");
    if (emailConfig.Mode == "Q")
    {
        sbHTML.AppendLine("Please call me on " + legalPhone + " and we will arrange ");
        sbHTML.AppendLine("everything for you. Please have your ticket details to hand ");
        sbHTML.AppendLine("and your " + instructText + " will be required. In the meantime if you have any questions ");
        sbHTML.AppendLine("please do not hesitate to call me.");
        sbHTML.AppendLine("<br /><br />");
    }
    else
    {
        sbHTML.AppendLine("If you have any queries relating to your quote " + transText + " please do not hesitate ");
        sbHTML.AppendLine("to contact your conveyancer or me.");
        sbHTML.AppendLine("<br /><br />");
    }

    // Signature + branding
    sbHTML.AppendLine("Yours sincerely");
    sbHTML.AppendLine("<br />");
    sbHTML.AppendLine("<img src=\"" + legalURL + "/images/agent_sign.jpg\" width=\"80\" height=\"74\" alt=\"\"><br />");
    //sbHTML.AppendLine(legalBrand + " Services<br />");
    sbHTML.AppendLine("</div>");

    // Return the closing content
    return sbHTML.ToString();
}
私有字符串构建ClosingContents(字符串legalBrand、字符串legalPhone、,
字符串legalURL、字符串transText、字符串instructText、MyMail.Setting emailConfig)
{
StringBuilder sbHTML=新建StringBuilder();
sbHTML.AppendLine(“”);
如果(emailConfig.Mode==“Q”)
{
AppendLine(“请打电话给我”+legaphone+,我们会安排”);
AppendLine(“一切都是为你准备的,请把你的机票详细资料拿在手上”);
sbHTML.AppendLine(“需要您的“+instructText+”。在此期间,如果您有任何问题”);
AppendLine(“请随时打电话给我。”);
sbHTML.AppendLine(“

”); } 其他的 { sbHTML.AppendLine(“如果您对报价有任何疑问”+transText+“请不要犹豫”); AppendLine(“联系您的转让人或我。”); sbHTML.AppendLine(“

”); } //签名+品牌 sbHTML.AppendLine(“您诚挚的”); sbHTML.AppendLine(
); sbHTML.AppendLine(
); //sbHTML.AppendLine(legalBrand+“服务
”); sbHTML.AppendLine(“”); //返回结束内容 返回sbHTML.ToString(); }

从应用程序核心逻辑中取出这些类似的帮助程序文本例程,并通过t4模板文件为电子邮件正文构建灵活的html字符串的最佳方法是什么?谢谢一个简单的例子是:

<#@ template language="C#" #>
The first string is <#= this.FirstString #>.
<# if (!string.IsNullOrEmpty(this.SecondString)) { #>The second string is <#= this.SecondString #>.<# } #>
<#+ 

public string FirstString { get; set; }
public string SecondString { get; set; }

#>

可以找到一个很好的教程。

为此,您可以使用运行时(或预处理)模板,因为这是唯一可以合并到应用程序中的模板。相比之下,设计时在Visual Studio中执行。

您的问题是什么?我们几乎不会为您创建T4模板。感谢您花时间阅读本文。由于我是T4新手,如果有人能通过链接/文章或博客为我指出正确的方向,而有人已经做了类似的事情,这会有所帮助。我倾向于使用指令来指定参数,例如,感谢Gareth-您能将强类型类传递给运行时模板吗?
var template = new MyTemplate() {
    FirstString = "Test"
};

var text = template.TransformText();