我有以下代码,
@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>
}
目前,当我加载视图时,代码在帮助程序的最后一行失败,并显示以下消息:
分析器错误 说明:解析为此&gt;请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息,并相应地修改源&gt;文件。
“分析器错误消息:遇到结束标记”tr“,没有匹配的开始 标签。您的开始/结束标签是否正确平衡?
来源错误:
第65行:@ FormatAs.Currency(group.TotalValue)行 66:第67行:第68行:}“
当我删除最后一行的最后</tr>
时,它会失败并显示以下消息:
分析程序错误说明:解析a期间发生错误 服务此请求所需的资源。请查看以下内容 特定的解析错误详细信息并修改您的源文件 适当。
分析器错误消息:“tr”元素未关闭。所有元素 必须是自我关闭或具有匹配的结束标记。
来源错误:
第32行:第33行:}第34行:第35行:@switch(css)
我无法理解,这是整个帮助器方法,它看起来与我平衡,并且对此助手的所有调用都先前工作正常,并且没有嵌套在<tr>
s中,只有{{1 }}Š
有人可以帮助我吗?
修改:我设法通过删除该细分中的<div>
并在switch
的开头使用它来设置foreach
,然后使用它来设置它。这似乎是一个更好的解决方案,但我仍然想了解为什么它是第一次尝试不起作用。
答案 0 :(得分:1)
您的道明未正确关闭。从案例陈述中删除</text>
,然后在</td>
:
<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">
break;
case "lib":
<text>
<td class ="@css" style="color: @colors.Lib.html">
break;
case "net":
<text>
<td class ="@css" style="color: @colors.Net.html">
break;
default:
<text>
<td class="@css">
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>
</text>
</tr>