2

我正在研究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 en Product 属性)。

这可能吗?如果可以,我该怎么做?有替代品吗?

谢谢你的时间!

4

1 回答 1

0

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

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

然后将其用作您的模型。

那么你传入的item可以是这样的:

public class Sale: EmailItem
{
    // inherits EmailItem properties...
}
于 2012-11-07T20:11:50.817 回答