1

目前我有 4 个带有交替 CSS 标签的跨度。

<% var index =0 ; %>
    <% foreach (var item in Model.Take(4))  {
                    var css = (index%2==0)?"even":"odd";
    %>
        <span class="featured-products <%= css %>">
        <a href="<%= Url.Action("View", "Products", new {id = item.SKU}) %>"><%= Html.Photo(PhotoExtensions.PhotoSizeType.HomepageThumb, item.DefaultPhoto)%></a>
        <a href="<%= Url.Action("View", "Products", new {id = item.SKU}) %>"><%= item.ProductName%></a>
        </span>
    <%
    index ++ ;
    } %>

但我需要最后一个跨度包含一个额外的 CSS 标签“last”。我尝试了几种不同的方法,但都失败了。有什么帮助吗?谢谢。

4

2 回答 2

2

您是否尝试过使用 :last-child CSS 选择器?如果您可以通过 CSS 实现您想要的,则可能不需要添加额外的标记。

于 2012-05-04T19:21:56.347 回答
1

如果您不想使用 CSS。

<% var index = 0; %>
<% var items = Model.Take(4); %>
<% foreach (var item in items)  {
                var css = (index%2==0)?"":"odd";
                if(index == items.Count - 1)
                {
                   css = " last";
                }
%>
    <span class="featured-products <%= css %>">
    <a href="<%= Url.Action("View", "Products", new {id = item.SKU}) %>"><%= Html.Photo(PhotoExtensions.PhotoSizeType.HomepageThumb, item.DefaultPhoto)%></a>
    <a href="<%= Url.Action("View", "Products", new {id = item.SKU}) %>"><%= item.ProductName%></a>
    </span>
<%
index ++ ;
} %>

另外,我建议清理此代码。你不需要把<%%>无处不在。

更新:一种更简洁的方式来写你正在做的事情。绝对不是最干净的,而是一个好的开始。

<%
    var index = 0;
    var items = Model.Take(4);

    foreach (var item in items)  {
        var css = (index%2==0)?"":"odd";
        if(index == items.Count - 1)
        {
            css = " last";
        }

        %>
        <span class="featured-products <%= css %>">
        <a href="<%= Url.Action("View", "Products", new {id = item.SKU}) %>"><%= Html.Photo(PhotoExtensions.PhotoSizeType.HomepageThumb, item.DefaultPhoto)%></a>
        <a href="<%= Url.Action("View", "Products", new {id = item.SKU}) %>"><%= item.ProductName%></a>
        </span>
        <%
        index ++ ;
    }
%>
于 2012-05-04T19:25:10.410 回答