Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET剃须刀引擎似乎延迟_Asp.net Mvc_Razor - Fatal编程技术网

Asp.net mvc ASP.NET剃须刀引擎似乎延迟

Asp.net mvc ASP.NET剃须刀引擎似乎延迟,asp.net-mvc,razor,Asp.net Mvc,Razor,我的视图只包含以下内容: <table> @for (int i = 0; i < 10; i++) { if (i % 5 == 0) { <tr> } <td> Hello </td> if (i % 5 == 0) { </tr&g

我的视图只包含以下内容:

<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
        }
    }
</table>
    <table>
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
</table>
<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            @:<tr>
        }

        @:<td>
        @:Hello
        @:</td>

        if ((i + 1) % 5 == 0)
        {
            @:</tr>
        }
    }
</table>
我打算制作的是以下内容

<table>
    <tr>
        <td>Hello</td>
        <td>Hello</td>
        <td>Hello</td>
        <td>Hello</td>
        <td>Hello</td>
    </tr>
    <tr>
        <td>Hello</td>
        <td>Hello</td>
        <td>Hello</td>
        <td>Hello</td>
        <td>Hello</td>
    </tr>
</table>
但它却产生了以下结果:

<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
        }
    }
</table>
    <table>
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
</table>
<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            @:<tr>
        }

        @:<td>
        @:Hello
        @:</td>

        if ((i + 1) % 5 == 0)
        {
            @:</tr>
        }
    }
</table>

有什么问题吗?

如果要在页面上显示的HTML在代码块中,则必须在其前面加@:前缀

<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            @:<tr>
        }

        @:<td>
        @:Hello
        @:</td>

        if (i % 5 == 0)
        {
            @:</tr>
        }
    }
</table>

要产生所需的输出,您实际上需要以下内容:

<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
        }
    }
</table>
    <table>
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
            <tr>
        }

        <td>
           Hello
        </td>

        if (i % 5 == 0)
        {
            </tr>
</table>
<table>
    @for (int i = 0; i < 10; i++)
    {
        if (i % 5 == 0)
        {
            @:<tr>
        }

        @:<td>
        @:Hello
        @:</td>

        if ((i + 1) % 5 == 0)
        {
            @:</tr>
        }
    }
</table>
请注意对第二个if语句的更改。或者,也可以使用嵌套for循环生成相同的结果

<table>
    @for (int i = 0; i < 2; i++)
    {
        <tr>
            @for (int j = 0; j < 5; j++)
            {
                <td>Hello</td>
            }
        </tr>
    }
</table>

您的代码块应该跨多行,因此应该在@

@{
for (int i = 0; i < 10; i++)
{
 Blah blah...
}
}

尝试将html标记包装到文本元素中,如下所示: