在嵌套在 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);
删除它将修复您的代码
我的剃刀索引视图中有这样的代码:
@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);
删除它将修复您的代码