我已經得到了正在返回足球推介的IEnumerable的用戶數量可變的一種模式。由於這個原因,我正在動態構建一個可變列數的html表格。基本上,我的選擇會像這樣回來。然而,每場比賽將被重複每一個用戶,所以我只能將每個錶行的第3列一次,然後只添加一個標籤,直到遊戲ID的變化。我知道可能有更好的方法來做到這一點,但這只是我需要快速完成的一個副項目。而且,我只是想弄清楚爲什麼它不起作用。MVC3剃刀的foreach問題
GameID
GameDateTimeDisplay
GameTeamDisplay
WinningTeamDisplay
PickedTeamAbbr
好的,所以這裏是瘋狂,不工作。我可以讓我的表頭成功創建,但然後tbody不工作,但它在一個奇怪的地方錯誤。
我不得不把所有的@ Html.Raw(...)的東西在裏面,因爲它是很難找到對foreach,如果沒有他們的語句的結束符。
總之,這裏是我的代碼。引起該異常的行是這樣的: @gameID = @ pick.Game.GameID;
例外是 - >編譯器錯誤消息:CS1525:無效的表達式'=' 智能感知將@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([email protected]){
<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,等...還包裹在一個@的遊戲ID分配{}。它現在給我的錯誤在這條線上, @ {遊戲ID = @ pick.Game.GameID;}
編譯錯誤:CS1501:沒有重載方法「寫」取0參數
這裏是更新代碼:
@foreach(var pick in @Model.Picks) {
@{gameID = @pick.Game.GameID;}
if(@gameID != @lastGameID) {
if([email protected]){
@:</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>
我補充說,它擺脫了這個問題,然後就行了,@ Html.Raw(
只要寫
你不需要
@
裏面的代碼塊。您可以使用@:
代替<text>, Html.Raw
,您可以在這裏看到Razor syntax reference
來源
2011-08-26 10:27:07 dohaivu
相關問題