在嵌套在 for 循环中的 if 语句中添加 html

Adding html in an if statement nested in a for loop

我的剃刀索引视图中有这样的代码:

@for (decimal hour=7m; hour<=20.5m; hour +=0.5m)
{
  var item = @Model.Items.FirstOrDefault( i=> i.Hour == hour);
  if (item != null)
  {
    <td colspan="@item.TimeBlocks">
      @item.Description
    </td>
    hour += (item.TimeBlocks-1)* 0.5m;
  }
  else
  {
    <td>
      <a href="/Items/Add/@Model.UserId">+</a>
    </td>
  }
}

出于某种原因,VS2013 始终在错误列表 window 中告诉我“} expected”。语法高亮显示所有高亮显示都很好,直到 else 之前的大括号。

我试过使用@: 作为html 标签。它在 if 块中工作正常,但在 else 块中出现以下错误: “:”在代码块的开头无效。

我也尝试过将 html 标签包装在标签中,但这也不起作用。

我该怎么做才能渲染它?

您的代码有误。

下面一行

var item = @Model.Items.FirstOrDefault( i=> i.Hour == hour);

实际应该读作:

var item = Model.Items.FirstOrDefault( i=> i.Hour == hour);

删除它将修复您的代码