您好我一直在开发基于ASP.NET浏览器的游戏,没有任何脚本。 但是当我尝试在Razor文件中使用IF ELSE生成HTML标记时会出现问题。
以下是代码:
<table width="400" height="400 " style="overflow: hidden; white-space: nowrap; table-layout:fixed;" class="field">
@for (var row = 0; row < Model.Field.RowCount; row++)
{
<tr>
@for (var column = 0; column < Model.Field.ColumnCount; column++)
{
var tile = Model.Field;
@if (tile.TileField[row, column].IsMarked)
{
<td style="border:1px solid black;">
}else{
<td style="border:2px solid black;">
}
<a href='/Tetravex/Move?row=@(row)&column=@(column)'>
<table width="100" height="100" style="transform:rotate(45deg); text-align:center;">
<tr style="border-bottom:1px solid black;">
<td style="border-right:1px solid black; transform:rotate(-45deg);"><p style="margin:0px;">@(tile.TileField[row, column].North)</p></td>
<td style="transform:rotate(-45deg);"><p style="margin:0px;">@(tile.TileField[row, column].East)</p></td>
</tr>
<tr>
<td style="border-right:1px solid black; transform:rotate(-45deg);"><p style="margin:0px;">@(tile.TileField[row, column].West)</p></td>
<td style="transform:rotate(-45deg);"><p style="margin:0px;">@(tile.TileField[row, column].South)</p></td>
</tr>
</table>
</a>
</td>
}
</tr>
}
</table>
我知道代码不太清晰,非常复杂,可能有更好的方法,我只是好奇为什么这不起作用。并且不要担心那里撞到的所有CSS属性,我最终会清理它。
问题,Visual Studio并不认为<td>
标记在if
语句中没有关闭,因此{ {1}}语句变灰并被忽略。那是为什么?