У меня есть модель, которая возвращает IEnumerable футбольных мячей для переменного числа пользователей. В связи с этим я динамически создаю HTML-таблицу с переменным количеством столбцов. В основном мои выборы вернутся вот так. Тем не менее, каждая игра будет повторяться для каждого пользователя, поэтому я добавляю только первые 3 столбца каждой строки таблицы один раз, а затем добавляю только один тег, пока gameID не изменится. Я знаю, что, вероятно, есть лучшие способы сделать это, но это всего лишь побочный проект, который мне нужно сделать быстро. И я просто хочу выяснить, почему это не работает.
GameID
GameDateTimeDisplay
GameTeamDisplay
WinningTeamDisplay
PickedTeamAbbr
Хорошо, вот безумие, которое не работает. Я могу успешно создать заголовки таблиц, но тогда это не работает, но в каком-то странном месте происходит ошибка.
Мне пришлось поместить туда все @ Html.Raw (...), потому что у него были проблемы с поиском конечных тегов для foreach и операторов if без них.
В любом случае, вот мой код. Строка, которая вызывает исключение, такова:
@gameID = @ pick.Game.GameID;
Исключение составляет -> Сообщение об ошибке компилятора: CS1525: недопустимый термин выражения '='
Intellisense показывает @gameID в качестве переменной, и @ pick.Game.GameID также кажется правильным.
<table>
<thead>
<tr>
<th>Game</th>
<th>Game Date/Time</th>
<th>Winner</th>
@foreach(var name in @Model.UserNames) {
<th>@name</th>
}
</tr>
</thead>
<tbody>
@{
int lastGameID = 0;
int gameID = 0;
bool firstGame = true;
}
@foreach(var pick in @Model.Picks) {
@gameID = @pick.Game.GameID;
if(@gameID != @lastGameID) {
if(!@firstGame){
<text>@Html.Raw("</tr>")</text>
}
@Html.Raw(
<tr>
<td>@pick.GameTeamDisplay</td>
<td>@pick.GameDateTimeDisplay</td>
<td>@pick.Game.WinningTeam.TeamAbbr</td>
<td>@pick.PickedTeamAbbr</td>
)
}
else {
@Html.Raw(<td>@pick.PickedTeamAbbr</td>)
}
}
@Html.Raw(</tr>)
</tbody>
</table>
UPDATE:
Я удалил @ Html.Raw и т. Д. Также обернул назначение gameID в @ {}. Это теперь дает мне ошибку в этой строке,
@ {gameID = @ pick.Game.GameID;}
Ошибка компиляции: CS1501: нет перегрузки для метода «Запись», принимает 0 аргументов
Вот обновленный код:
@foreach(var pick in @Model.Picks) {
@{gameID = @pick.Game.GameID;}
if(@gameID != @lastGameID) {
if(!@firstGame){
@:</tr>
}
@:<tr>
<td>@pick.GameTeamDisplay</td>
<td>@pick.GameDateTimeDisplay</td>
<td>@pick.Game.WinningTeam.TeamAbbr</td>
<td>@pick.PickedTeamAbbr</td>
}
else {
<td>@pick.PickedTeamAbbr</td>
}
}
</tr>