0

私は次のコードを持っています、そしてそれは私が私の膝に捨てられたプロジェクトのかみそりの構文を見たときに私が恐れた悪夢です。コードとHTMLの部分がわかりません。

@for (int i = 0; i < Model.Instructor.Classes.Count;i++ )
        {
            var c = Model.Instructor.Classes[i];
            var mod = (i%2);
            if (mod==1)
            {
                <tr>
                   }

                    <td>
                        @c.Subject @c.CatalogNumber -  @c.Section
                    </td>
                    if (mod==0)
                    {
                </tr>
            }


        }

ページ上のアイテムのリストが長すぎるため、単純な複数列のテーブルを作成しようとしています。ifロジックがテキストであるかのように出力されます。その前に@を付けると、構文エラーが発生します。これにはコントロールがあるはずですが、私が見たすべてのコントロールは、データを配置する列の数ではなく、altスタイルについて心配しています。

4

1 に答える 1

4

手始めに、セミコロンを削除します。Razor構文はそれらを使用しません。var c = Model.Instructor.Classes[i];もっと要点を言えば、あなたは自分の見解のようなものを書くべきではありません。ビューはビューモデルにバインドする必要があります。ビューモデルは、コントローラーからビルド/返される必要があります。

コントローラ内で、ViewBag必要なこれらの値にマップするプロパティを設定できます。このような実際のロジックは表示されるべきではありません。

最後に、Razorが解析する必要のある用語の解析に問題がある場合(質問の冒頭でほのめかしているように、これは潜在的な落とし穴です)、タグを使用して、<text>どの部分をテキストにするかを明示的に示すことができます。

于 2012-05-10T21:54:26.117 に答える