Razor模板C#抛出异常:';TemplateCompilationException';在RazorEngine.dll中
我正在尝试使用Razor引擎在我的C#项目中创建一个模板。应该根据从数据库中获取的值填充模板。 模板看起来像Razor模板C#抛出异常:';TemplateCompilationException';在RazorEngine.dll中,c#,asp.net-mvc,templates,razor,C#,Asp.net Mvc,Templates,Razor,我正在尝试使用Razor引擎在我的C#项目中创建一个模板。应该根据从数据库中获取的值填充模板。 模板看起来像 <table> <tr> <td> Tier : </td> <td> @Model.tier</td> </tr> <tr> <td> Author : </td> &l
<table>
<tr>
<td> Tier : </td>
<td> @Model.tier</td>
</tr>
<tr>
<td> Author : </td>
<td> @Model.author</td>
</tr>
<tr>
<td> Quotation For : </td>
<td> @Model.quotationFor</td>
</tr>
</table>
var model = new List<KeyValuePair<string, object>>();
for (int i=0;i<value.Count;i++) {
model.Add(new KeyValuePair<string, object>(name[i], value[i]));
}
var template = File.ReadAllText(HttpContext.Current.Server.MapPath("Templates/dataDump.html"));
var body = Razor.Parse(template, model);
看起来您正在尝试传递一个非常复杂的模型,但您在模板中没有很好地定义该模型 应该是这样的
var body = Razor.Parse(template, new {tier = "tier", author="author",quotationFor=".quotationFor"});
如果你想让它像你展示的那样充满活力
var model = new List<KeyValuePair<string, object>>();
var模型=新列表();
您必须修改模板
<table>
@foreach(var item in Model)
{
<tr>
<td>@item.Key </td>
<td>@item.Value</td>
</tr>
}
</table>
@foreach(模型中的var项目)
{
@项目.关键
@项目.价值
}
上述方法可行,但它是硬编码的。我需要列表是动态的,所以像new{name[I]=value[I],name[I+1]=value[I+1]..}这样的东西我如何创建这样一个模型呢?我跟随这个博客来解决这个问题
<table>
@foreach(var item in Model)
{
<tr>
<td>@item.Key </td>
<td>@item.Value</td>
</tr>
}
</table>