使用输入参数创建并运行自定义T4模板?

时间:2013-06-14 14:16:21

标签: asp.net asp.net-mvc

如何使用一些输入参数创建和运行自己的模板? 类似MVC控制器,具有读/写操作和视图,使用ASP .NET MVC 4中的Entity Framework

1 个答案:

答案 0 :(得分:-1)

您可以使用分部类向模板添加参数。这个article可以帮助您入门。

我们的想法是拥有名为MyTemplate.tt的以下模板:

<table>
    <# for (int i = 1; i <= 10; i++)
       { #>
         <tr><td>Test name <#= i #> </td>
             <td>Test value <#= i * i #> </td> </tr>
    <# } #>
</table>

然后,您可以在单独的文件中添加部分类,例如MyTemplateExtension.cs,您可以在其中设置自己的属性:

partial class MyTemplate
{
    private MyData m_data;
    public MyTemplate(MyData data) { this.m_data = data; }
}

并在模板中使用这些属性:

<h2>Sales figures</h2>
<table>
<# foreach (MyDataItem item in m_data.Items) 
   // m_data is declared in MyTemplateExtension.cs
   { #>
      <tr><td> <#= item.Name #> </td>
          <td> <#= item.Value #> </td></tr>
<# } // end of foreach
#>
</table>

您现在拥有一个带有构造函数的模板,该构造函数接收参数并可以按以下方式使用:

MyTemplate templateGenerator = new MyTemplate(data);
String report = templateGenerator.TransformText();
相关问题