在Razor中打开html标签时,在Razor中使用IF语句的正确方法是什么?

时间:2018-05-12 15:11:09

标签: html css asp.net razor .net-core

您好我一直在开发基于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}}语句变灰并被忽略。那是为什么?

0 个答案:

没有答案