c # foreach Динамически генерируемая таблица HTML - PullRequest
0 голосов
/ 24 февраля 2019

@{ int count = 0;}
@if (Model != null)
{
    <table style="width:100%" border="1">                        
    @foreach (var item in Model)
    {
       @if (count == 0)
       {
           <tr>
       }
       <td style="width:25%">
           <table>
               <tr><td>@Html.DisplayFor(model => item.Item_Title)</td></tr>
               <tr><td>@Html.DisplayFor(model => item.Item_Content)</td></tr>
               <tr><td>@Html.DisplayFor(model => item.Item_Author)</td></tr>
           </table>
       </td>

       @if (count == 3)
       {
           </tr>
       }

       @if (count == 3)
       { count = 0; }
       else (count != 3)
       { count++; }
    }
    </table>
}

Как видно из заголовка,

Я пытался использовать FOREACH для динамического создания таблиц в HTML.

Но проблема

Моя логика заключается в том, чтобы динамически генерировать таблицу 4 * N.

Но код в красном поле распознается программой как текст.

Вызываетпрограмма в красном поле не работает.

Как это исправить?Добавлено @ после вхождения

Он обнаружил, что конца нет

Приводит к тому, что следующее становится текстом

Наконец, выпадения не существует}

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Спасибо всем за решение проблемы.

Пересмотренная программа выглядит следующим образом:

@ {int count = 0;}

@if(Model != null)
{
    <table style="width:100%" border="1">                        
    @foreach (var item in Model)
    {
        if(count == 0)
        {                                
            @:<tr>
        }
        <td style="width:25%">
            <table>
                <tr><td>@Html.DisplayFor(model => item.Item_Title)</td></tr>
                <tr><td>@Html.DisplayFor(model => item.Item_Content)</td></tr>
                <tr><td>@Html.DisplayFor(model => item.Item_Author)</td></tr>
            </table>
        </td>
        if(count == 3)
        {
            @:</tr>
        }

        if(count == 3)
        { count = 0; }
        else
        { count++; }
    }
    </table>
}
</td>
0 голосов
/ 24 февраля 2019

ОК, это похоже на возможность компилирования, когда я помещаю вывод условий If в Html.Raw:

@{ int count = 0;}
@if (Model != null)
{
    <table style="width:100%" border="1">                        
    @foreach (var item in Model)
    {
        if (count == 0)
        {
            @Html.Raw("<tr>")
        }

        <td style="width:25%">
           <table>
               <tr><td>@Html.DisplayFor(model => item.Item_Title)</td></tr>
               <tr><td>@Html.DisplayFor(model => item.Item_Content)</td></tr>
               <tr><td>@Html.DisplayFor(model => item.Item_Author)</td></tr>
           </table>
       </td>

       if (count == 3)
       {
           @Html.Raw("</tr>")
       }

       if (count == 3)
       { count = 0; }
       else if (count != 3)
       { count++; }
    }
</table>}
...