1

複数の FOR ループ (for in for) を使用しようとすると問題が発生します。エラーメッセージは次のとおりです。

パーサー エラー メッセージ: for ブロックに終了文字 "}" がありません。このブロック内のすべての「{」文字に一致する「}」文字があること、および「}」文字がマークアップとして解釈されていないことを確認してください。

これが私のコードです。問題は :( の最初のものです。

<table width="100%" border="1">
@for (int q = 0; q < quanList.Count; q++) {     
    <tr>
        <td>@quanList[q]</td>

        @for (int s = 0; s < sizeList.Count; s++) {         
            <td><input type="text" name="txtval" style="width:80px" /></td>
        }
    </tr>
}   
</table>

提案やアイデアをありがとうございました。

動的な行と列を含むテーブルを表示したいのですが、コントローラーから 2 つのリストが作成され、ViewBag を介してビューに解析されます。

@{
List<string> sizeList = (List<string>)ViewBag.SizeList;
List<string> quanList = (List<string>)ViewBag.QuanList;

}

4

3 に答える 3

2
<table width="100%" border="1">
@{List<int> quanList = new List<int>();
  List<int> sizeList = new List<int>();
}
for (int q = 0; q < quanList.Count(); q++) {
<tr>
    <td>@quanList[q]
    </td>
    for (int s = 0; s < sizeList.Count(); s++){
    <td>
        <input type="text" name="txtval_@q_@s" style="width: 80px" />
    </td>
    }
</tr>
} }
</table>

これを試して :

これを別の名前に変更してみてください@q @s。これらを混同すると、MVC は@たとえば通常の処理を行いますexample@example.com

{int textFieldName = "txtval_" + q +
        "_" + s;
        <td>
            <input type="text" name="@textFieldName" style="width: 80px" />
        </td>
        }
于 2012-08-17T10:05:44.537 に答える
1

入力名を次のように変更してみてください。

<input type="text" name="txtval_@(q)_@(s)" style="width:80px" />

それらの余分なブラケットはそれを修正する必要があります

于 2012-08-17T10:11:22.677 に答える
1

@double を使用してシンボルをエスケープする必要があります@

<td><input type="text" name="txtval_@@q_@@s" style="width:80px" /></td>

または、q と s の値が必要な場合は、括弧を含めることができます。

<td><input type="text" name="txtval_@(q)_@(s)" style="width:80px" /></td>
于 2012-08-17T10:14:38.257 に答える