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

时间:2015-01-02 01:25:59

标签: razor asp.net-mvc-5

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

@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在错误列表窗口中始终告诉我“} expected”。语法高亮显示器显示所有高亮显示的内容,直到大括号前面的大括号。

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

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

我该怎么做才能让它渲染?

1 个答案:

答案 0 :(得分:1)

您的代码中有错误。

以下一行

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

实际应该是:

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

删除它会修复您的代码