1

私はasp.net mvc 3アプリケーションに取り組んでいます。ビューには Razor を使用します。私は金曜日にこの問題を抱えていて、それを修正したと思っていましたが、今では、何らかの理由で物事が機能したプライベートなケースであることがわかりました。

私は4つの列を持つテーブルを持っていますが、各行は1つのセルに異なる数のフィールドを持つ可能性があるため、セルに属するすべての情報をセルに入力する何らかのアルゴリズムに取り組んでいます. これは私が今持っているものです:

@{
    int tempColumn = 1;    
}

<tr>
@foreach (var field in Model)
{   
    if (field != null)
    {   
        <td>    
        @for (int i = 0; i < field.Count; i++)
        {
            if (field[i].ColumnNo == tempColumn)
            {
                @field[i].QuestionText;
                @field[i].FieldValue;
            }
            else if (field[i] != null)
            {
                tempColumn++;
                @:</td>
                @:<td>
                @field[i].QuestionText;
                @field[i].FieldValue;
            }
        }
    }
    @:</td>      
}
</tr>

基本的には、@field[i].QuestionText;/のペアがいくつあっても、行の先頭に開始タグ、行の最後に終了タグ@field[i].FieldValue;が常にあるという考えです。アルゴリズムにも問題がありますが、認識されていないクロージング ブレスレットの問題を修正する前に続行できません。エラーは何ですか - このコードをデバッグモードで実行しようとすると、次のエラーが発生します。<td></td>

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

しかし、コード自体に移動すると、ifブロックとブロックについて同じエラーが発生しforます。この構文を使用して HTML<td>とタグを挿入すると、C# コードの構造が保持され、必要な場所にタグが追加されるだけだと思いましたが、何らかの理由で少なくとも 1 つまたはタグが解釈され、すべてがC# コードではなく、HTML マークアップとして認識された後。では、C# メソッドに HTML マークアップを挿入する適切な方法は何ですか? または、エラーの原因が別の原因である場合は、何が原因でしょうか?</td>@:<td></td>

PS

この質問のトピックではありませんが、アルゴリズムに関するヘルプをいただければ幸いです。

4

1 に答える 1