获取Razor模板的动态模型属性列表

时间:2012-11-07 20:06:04

标签: razor template-engine

我正在研究RazorEngine的电子邮件模板系统。

系统会有很多不同的电子邮件模板,因此我不想为每个模板创建一个类型模型。

是否有可能使用动态模型并检索动态模型应具有的所有属性的列表?

例如:

查看/模板

@model dynamic

Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum @Model.Customer Lorem ipsum Lorem ipsum
Lorem ipsum Lorem ipsum Lorem ipsum @Model.Product Lorem ipsum Lorem ipsum Lorem ipsum  

从该视图/模板中我希望能够检索以下列表(在调用Razor.Parse之前):
客户
产品

使用该列表,我将能够创建可用于调用Razor.Parse的动态模型(包含Customer zh_cn属性)。

这可能吗?如果可以,我该怎么做?还有其他选择吗?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

如果您对模型有足够的了解,知道它有客户和产品,那么您可能应该使用所有电子邮件项目继承的基类:

public class EmailItem
{
    public string Customer {get;set;}
    public string Product {get;set;}
}

然后将其用作模型。

然后你传入的项目就像这样:

public class Sale: EmailItem
{
    // inherits EmailItem properties...
}