2013-01-31 28 views
0

我想使用Spark視圖引擎(DirectUse)進行電子郵件模板化。所以我深入了Spark的例子(EmailOrTextTemplating)。但我想要的是在viewdata中使用NameValuePair(String name,object value)對象的數組作爲字典。具有namevaluepair數組的Spark視圖引擎

然後在模板中使用這樣的:

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

<if condition='namevaluepairs["date"].ToString("dd-MM-yyyy") == "31-01-2013"'> 
    <p>text</p> 
</if> 

我不知道什麼是正確的語法或如何把namevaluepairs中的可視數據。 任何人都可以幫助我在正確的方向嗎?

Ps我讀了文檔,但我看到使用spark引擎語法的不同方式。

回答

0

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的

${ViewData["name"]} 

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

感謝這正是我需要的。但是,是否也可以直接使用namevaluepairs而不使用viewdata?即$ {name}通過這種方式,模板使用起來更簡潔。 – ZxCvBnM

+0

您可以使用強類型模型,但這不是名稱/值對。我相信你也可以使用動態,但不能完全確定。 –