2

このコードをかみそりで動作させるのに問題があります

@for (int i = 0; i < Model.Count(); i++)
{
    <ul>@createSubastaContainer(Model.ElementAt(i))
    if (i % 5 == 0)
    {
        </ul>
    }
}

要素が5の乗算である場合、私が欲しいものは、</ul>

私のコードの何が問題になっていますか?それは</ul>常に印刷されており、式自体も印刷されているからです

アップデート

赤い@marteljnに基づいて、変更が例外をスローするときに答えます

The for block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.

4

3 に答える 3

3

ステートメントの@前にaを配置する必要があるため、補足として、これはHtmlHelperクラスを拡張する拡張メソッドを作成する絶好の機会です。if@if (...

編集

不一致のタグを取得しています。レイザービューエンジンは、タグの不一致に関してHTML準拠を強制します。したがって、できることは、タグを@Html.Raw("<ul>")とに置き換えることです@Html.Raw("</ul>")

于 2012-05-14T01:31:01.613 に答える
0

これを試して:

@for (int i = 0; i < Model.Count(); i++)  
{
    <ul>@createSubastaContainer(Model.ElementAt(i))
    @if (i % 5 == 0)
    {
        <text></ul></text>
    }
}

またはこれ:

@for (int i = 0; i < Model.Count(); i++)  
{
    <ul>@createSubastaContainer(Model.ElementAt(i))
    @if (i % 5 == 0)
    {
        @: </ul>
    }
}

ここに、これに関するすばらしい投稿があります:http ://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt- Syntax.aspx

それが役に立てば幸い

于 2012-05-14T02:10:01.727 に答える
0

これは機能するはずです:

@for (int i = 0; i < Model.Count(); i++) 
{ 
    @:<ul>
    createSubastaContainer(Model.ElementAt(i)) 
    if (i % 5 == 0) 
    { 
        @:</ul> 
    } 
} 
于 2012-05-14T08:23:14.847 に答える