如果声明正常工作,无法获得Razor

时间:2012-06-26 14:20:13

标签: asp.net-mvc razor

我有以下简单的代码:

@for (int j = 0; j < file.Items.Count; j++) {
var item = file.Items[j];
if (item.Errors.Count > 0)
{
    Html.Raw("<tr class='errors'>");
}
else {
    Html.Raw("<tr>");
}
    <td>blah</td>
    </tr>
}

但是,我不断收到解析错误,说明结尾</tr>没有开始标记。我错过了什么?如果我用常规<tr>替换if语句,那么它可以正常工作。

2 个答案:

答案 0 :(得分:1)

我认为这只是一个智能感知问题,试试这个黑客:

@for (int j = 0; j < file.Items.Count; j++) {
   var item = file.Items[j];
   if (item.Errors.Count > 0)
   {
       @:<tr class="errors">
   }
   else {
       @:"<tr>");
   }
       @:<td>blah</td>
       @:</tr>
 }

我认为您的代码完全没问题,请查看this SO问题以获得对此的详尽解释。

希望它有所帮助!

答案 1 :(得分:0)

尝试在两种情况下都丢失Html.Raw。我不明白你为什么需要它们