我想在C#中使用從here Engine.Razor lib的電子郵件生成模板。但我不明白他們的主要財產是什麼? 按照文檔我運行像這樣Engine.Razor拋出異常使用相同的鍵多次使用
emailBody = Engine.Razor.RunCompile(emailBodyText, "SomeKey", null, new { SomeVariable = 3 });
它會生成一個名爲「SomeKey」一些緩存的關鍵!我真的不需要這個!但是它在參數中是必需的。
但我遇到的問題是,我生成多個電子郵件後,我得到一個異常說,該密鑰已經生成。所以,每次我生成一封電子郵件時,我是否會拋出一個獨特的價值,或者我在這裏錯過了關於這個圖書館使用的東西?
舊文檔說要使用.Parse(不需要密鑰),但Visual Studio將其顯示爲已棄用!
string result = Razor.Parse(template, new { Name = "World" });
所以我很害怕使用這種方法,即使它工作!
這真是令人困惑!每次我生成電子郵件模板時,它都會與之前的不同。恩。我的用戶登錄可能會生成一封電子郵件,發送它,然後30秒後生成另一封電子郵件。此電子郵件將有不同的模型信息,所以我需要一個新的模板。所以如果我理解你的答案,我需要在每次使用RunCompile時使用templateKey名稱中的唯一標識符?恩。 「templateKey」+ DateTime.Now.ToString() – user1186050
緩存所有這些模板似乎有點浪費! – user1186050
@ user1186050 - 不,您正在讀取它不正確。這樣想一想。您有一個新的用戶電子郵件模板,它接受一個字符串模型(稱之爲名稱)。你可以使用唯一的標識符和模型值來調用第一項「RunCompile」(可以說Tommy)。現在,下一次您必須使用*特定的電子郵件模板*時,可以使用*不同模型值*(可以說user1)調用第二個命令'.Run'。您爲每個模板調用'RunCompile'一次且僅一次。從此之後,您可以在唯一的模板ID上使用不同的模型值調用'Run'。 – Tommy