由于CodeSmith的代码模板使用了和Asp.Net类似的语法,因此如果要使用CodeSmith 模板生成Asp.Net脚本时比如“<%” 就碰到了问题, <% 会被CodeSmith解释成CodeSmith自己的标记,因此需要使用转义标签来代替需要插入到Asp.Net代码中的标签。
具体方法是使用 <%% 来替换需要生成的Asp.Net中的 <%标记。
比如我们要生成如下的Asp.Net代码:
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" RunAt="server"> <ItemTemplate> <table> <tr> <td align="right"><b>Product ID:</b></td> <td><%# Eval("ProductID") %></td> </tr> </table> </ItemTemplate> </asp:FormView>可以在CodeSmith的模板中使用<%% 来替换 <%
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" RunAt="server"> <ItemTemplate> <table> <tr> <td align="right"><b>Product ID:</b></td> <td><%%# Eval("ProductID") %></td> </tr> </table> </ItemTemplate> </asp:FormView>