我有以下代码,
@helper Category(IGroup group)
{
if (!group.Exist)
{
return;
}
var colors = AppContext.Settings.Colors.Charts.Net;
var css = group.Name.Replace(" ", String.Empty).ToLower();
var id = css.ToUpper() + "_";
<tr>
<td class="summarygridbackground" style="font-weight:bold;">@group.Name</td>
</tr>
foreach(var category in group.Categories)
{
<tr id="@id@category.Id" class="summarygridbackground">
<td class="category">
<div style="float:left">@category.Name</div>
<div class="hovericon">@FormatAs.Currency(category.TotalValue)</div>
</td>
</tr>
}
<tr class="summarygridbackground">
@switch(css)
{
case "inv":
<text>
<td class ="@css" style="color: @colors.Inv.html">
</text>
break;
case "other":
<text>
<td class ="@css" style="color: @colors.Other.html">
</text>
break;
case "lib":
<text>
<td class ="@css" style="color: @colors.Lib.html">
</text>
break;
case "net":
<text>
<td class ="@css" style="color: @colors.Net.html">
</text>
break;
default:
<text>
<td class="@css">
</text>
break;
}
<div style="float:left; padding-left:12px;"> Total @group.Name</div>
<div style="float:right; padding-right:10px;">@FormatAs.Currency(group.TotalValue)</div>
</td>
</tr>
}
就目前而言,当我加载视图时,代码在帮助程序的最后一行失败,并显示以下消息:
解析器错误描述:解析服务此请求所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当地修改您的源文件。
“解析器错误消息:遇到没有匹配开始标签的结束标签“tr”。你的开始/结束标签是否正确平衡?
源错误:
第 65 行:@FormatAs.Currency(group.TotalValue) 第 66 行:第 67 行:第 68 行:}"
当我删除</tr>
最后一行的最后一个时,它会失败并显示以下消息:
解析器错误描述:解析服务此请求所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当地修改您的源文件。
解析器错误消息:“tr”元素未关闭。所有元素必须是自闭合的或具有匹配的结束标记。
源错误:
第 32 行:第 33 行:} 第 34 行:第 35 行:@switch(css)
我想不通,这就是整个辅助方法,对我来说它看起来很平衡,并且对这个辅助方法的所有调用之前都运行良好,并且没有嵌套在<tr>
s 中,只有<div>
s
有人可以帮我吗?
switch
编辑:我设法通过从该段中删除它来使其工作,而是在开始时使用它foreach
来设置 a var color
,并使用它来代替。无论如何,这似乎是一个更好的解决方案,但我仍然想了解为什么第一次尝试没有奏效。