Sha*_*anc 38 c# asp.net-mvc html-table razor
我试图用这段代码在foreach中做一个简单的If/Else:
@{
var count = 0;
foreach (var item in Model)
{
if (count++ % 2 == 0)
{
@:<tr class="alt-row">
} else {
@:<tr>
}
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.Truncate(item.Details, 75)
</td>
<td>
<img src="@Url.Content("~/Content/Images/Projects/")@item.Images.Where(i => i.IsMain == true).Select(i => i.Name).Single()"
alt="@item.Images.Where(i => i.IsMain == true).Select(i => i.AltText).Single()" class="thumb" />
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ProjectId }) |
@Html.ActionLink("Details", "Details", new { id = item.ProjectId }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ProjectId })
</td>
</tr>
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个解析错误"遇到结束标记"tr"没有匹配的开始标记.你的开始/结束标记是否正确平衡?".好像if语句不想"工作".
Hen*_*man 45
只需将其用于结束标记:
@:</tr>
Run Code Online (Sandbox Code Playgroud)
并保留你的if/else原样.
好像if语句不想"工作".
它工作正常.你在这里的两个语言空间工作,似乎只有在边界上分开开/关三明治才恰当.
Jef*_*eff 12
我会跟着去
<tr @(if (count++ % 2 == 0){<text>class="alt-row"</text>})>
Run Code Online (Sandbox Code Playgroud)
甚至更好
<tr class="alt-row@(count++ % 2)">
Run Code Online (Sandbox Code Playgroud)
这会给你一些像
<tr class="alt-row0">
<tr class="alt-row1">
<tr class="alt-row0">
<tr class="alt-row1">
Run Code Online (Sandbox Code Playgroud)
有点偏离主题可能,但对于现代浏览器(IE9和更新版本),您可以使用css奇数/偶数选择器来实现您想要的.
tr:nth-child(even) { /* your alt-row stuff */}
tr:nth-child(odd) { /* the other rows */ }
Run Code Online (Sandbox Code Playgroud)
要么
tr { /* all table rows */ }
tr:nth-child(even) { /* your alt-row stuff */}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
104388 次 |
最近记录: |