1

ビューでこの html を印刷する必要があります。

@foreach (string indices in Model.Indices)
{
    if (counter == 1)
    {
        Response.Write("<tr>");
    }      
                                  
    Response.Write("<td><span class='select'>@Html.CheckBox('nome',false)</span>)");  @indices Response.Write("</td>");

    if (counter > 4) 
    {
        Response.Write("</tr>"); 
    }                
}    

これにより、作成したい html マークアップが出力されます。

私はhtmlしか書けないことを知っていますが、Razorはforeachを閉じていないと不平を言っています。

これは私の最初の試みでした:

@foreach (string indices in Model.Indices)
{
    if (counter == 1)
    {
        <tr>
    }      
                                  
    <td><span class='select'>@Html.CheckBox('nome',false)</span> @indices </td>

    @if (counter > 4) 
    {
        </tr>
    }                
}  
4

2 に答える 2

2

Razor では、HTML タグが整形式である必要があります。そうしないと、コード コンテキストに戻るタイミングがわかりません。

行の前に を付けることで、この制限を回避できます@:

ただし、これを行う正しい方法は、コレクションを 4 つの項目のグループのコレクションにグループ化し、ネストされた を使用することforeachです。

于 2012-12-04T15:50:12.287 に答える
0

あなたが何を望んでいるかを正しく理解している場合 (Model.Indices の最初の 4 つの要素を表示しますか?)、and タグを foreach から移動する必要があります。このようなもの:

<tr>
@{var counter = 1;}
@foreach (string indice in indices)
    {
        if(counter>4)
        {break;}
        <td><span class='select'>@Html.CheckBox("nome", false)</span> @indice </td>
        counter++;
    }
</tr>
于 2012-12-04T15:51:02.577 に答える