C# 带有namevaluepair数组的Spark view引擎

C# 带有namevaluepair数组的Spark view引擎,c#,syntax,template-engine,spark-view-engine,keyvaluepair,C#,Syntax,Template Engine,Spark View Engine,Keyvaluepair,我想使用Spark view引擎(DirectUse)进行电子邮件模板制作。因此,我深入研究了Spark示例(EmailOrtextTemplateing)。但我想使用viewdata中的NameValuePair(字符串名称、对象值)对象数组作为字典 然后在模板中使用如下内容: <p>Name = ${#namevaluepairs["name"]}</p> Name=${#namevaluepairs[“Name”]} 或 正文 我不知道正确的语法是什么,也不

我想使用Spark view引擎(DirectUse)进行电子邮件模板制作。因此,我深入研究了Spark示例(EmailOrtextTemplateing)。但我想使用viewdata中的NameValuePair(字符串名称、对象值)对象数组作为字典

然后在模板中使用如下内容:

<p>Name = ${#namevaluepairs["name"]}</p>
Name=${#namevaluepairs[“Name”]}


正文

我不知道正确的语法是什么,也不知道如何将namevaluepairs放入viewdata。 有人能帮我找到正确的方向吗

Ps我阅读了文档,但我看到了使用spark engine语法的不同方法。

ViewData对象是一个字典

在调用Spark之前,只需将对象加载到ViewData中:

var engine = new SparkViewEngine();
var descriptor = new SparkViewDescriptor()
            .AddTemplate( templateFileName );
ISparkEngineView view = engine.CreateInstance( descriptor ) as ISparkEngineView;

view.ViewData["name"] = "foo";
view.ViewData["date"] = DateTime.Now;

view.RenderView( writer );
然后在模板中使用ViewData,就像您通常使用的那样:

${ViewData["name"]}

<if condition='ViewData["date"]...'></if>
${ViewData[“name”]}

谢谢这是我需要的。但是也可以不使用viewdata直接使用namevaluepairs吗?i、 e.${name}这样,模板使用起来更干净。您可以使用强类型模型,但这不是名称/值对。我相信你也可以使用动力学,但不能完全确定。
${ViewData["name"]}

<if condition='ViewData["date"]...'></if>