0

私はかみそりに不慣れで、問題に直面しています。私は見つけたいくつかの解決策を試しましたが、どれも機能していません。

以下に、部分ビューで実装したいコードスニペットを示します。開いて<table>いますが、図のようにifループで条件付きで閉じたいと思います。

結果を取得するメソッド。モデルのリストプロパティにデータを入力し、部分ビューでモデルを返します。

最初に、タイプが「H」であるかどうかを確認しています。次に、テーブルタグが開き、タイプ「H」の行全体が見出しとして識別されます。タイプ次のエントリが「D」と表示されている場合、それは「H」タイプに存在するデータを意味します。また、詳細の次の要素のタイプも「H」の場合は、テーブルタグを閉じます。したがって、最初に識別された「H」から次に識別された「H」までテーブルが存在し、次の「H」タイプに対して新しいテーブルが開始する必要があります。

@if (Model.Details.Count() > 0)
{
    for (int count = 0; count < Model.Details.Count; count++)
    {
        //for heading
        if (Model.Details[count].Type == "H") 
        {
          <table>
                <thead>
                    <tr>
                        @if (Model.Details[count].Column1 != null)
                        {
                            <th>
                                @Model.Details[count].Column1.ToString();
                            </th> 
                        }
                        @if (Model.Details[count].Column2 != null)
                        {
                            <th>
                                @Model.Details[count].Column2.ToString();
                            </th> 
                        }
                        @if (Model.Details[count].Column3 != null)
                        {
                            <th>
                                @Model.Details[count].Column3.ToString();
                            </th> 
                        }
                    </tr>
                </thead>
                @if (count < Model.Details.Count)
                {
                    if (Model.Details[count + 1].Type == "H")
                    {
                        </table>
                    }
                }
        }
        //for data under each heading
        @if (Model.Details[count].Type == "D")
        {
            <tr>
                @if (Model.Details[count].Column1 != null)
                {
                    <td>
                         @Model.Details[count].Column1.ToString();
                    </td> 
                }
                @if (Model.Details[count].Column2 != null)
                {
                    <td>
                        @Model.Details[count].Column2.ToString();
                    </td> 
                }
                @if (Model.Details[count].Column3 != null)
                {
                    <td>
                        @Model.Details[count].Column3.ToString();
                    </td> 
                }
            </tr>
        }
    }
}

オープニングテーブルタグでエラーが表示されます

「「テーブル」要素が閉じられていません。すべての要素が自動で閉じているか、終了タグが一致している必要があります。」

そして、タグを閉じると、エラーは次のようになります

「開始タグが一致しない終了タグ「テーブル」が見つかりました。開始/終了タグは適切にバランスが取れていますか?」

if条件で``タグを閉じたい。どうやってやるの?助けてください..

4

1 に答える 1

1

テーブルタグをカミソリコードの外に移動してみませんか

<table>
@if (Model.Details.Count() > 0)
        {
           for (int count = 0; count < Model.Details.Count; count++)
           {
             if (Model.Details[count].Type == "H") 
                {
                        <thead>
                            <tr>
                                @if (Model.Details[count].Column1 != null)
                                {
                                    <th>
                                        @Model.Details[count].Column1.ToString();
                                    </th> 
                                }
                                @if (Model.RetriveImpactDetails[count].Column2 != null)
                                {
                                    <th>
                                        @Model.Details[count].Column2.ToString();
                                    </th> 
                                }
                                @if (Model.Details[count].Column3 != null)
                                {
                                    <th>
                                        @Model.Details[count].Column3.ToString();
                                    </th> 
                                }
                            </tr>
                        </thead>
                }
           }
       }
 </table>

これにより、モデルの最後の反復であるかどうかを確認する必要がなくなります (テーブルを動的に閉じる必要はありません)。これは、Count の値が 0 の場合、テーブル タグがまだ書き込まれている (閉じられている) ことを意味しますが、これは理想的である場合とそうでない場合があります。

于 2013-03-20T13:07:59.507 に答える