Asp.net mvc 3 在MVC 3中为局部视图着色
在我的视图中,我使用局部视图和模型中的对象列表,如下所示:Asp.net mvc 3 在MVC 3中为局部视图着色,asp.net-mvc-3,css,Asp.net Mvc 3,Css,在我的视图中,我使用局部视图和模型中的对象列表,如下所示: @foreach (var item in Model.MyObjectList) { @Html.Partial("DisplayObject", item) } 这在我的主视图下形成了一个网格模式,每个对象一行 我想用一种颜色的奇数行,另一种颜色的偶数行的普通方法给它们加条纹。(例如 通常你会通过做一些mod计算来做到这一点 问题是,如果不将项中的行号传递到部分视图中,我就不知道如何执行此操作 有没有更简单的方法?H
@foreach (var item in Model.MyObjectList)
{
@Html.Partial("DisplayObject", item)
}
这在我的主视图下形成了一个网格模式,每个对象一行
我想用一种颜色的奇数行,另一种颜色的偶数行的普通方法给它们加条纹。(例如
通常你会通过做一些mod计算来做到这一点
问题是,如果不将项中的行号传递到部分视图中,我就不知道如何执行此操作
有没有更简单的方法?Html.Partial没有任何可以挂接的Html属性
当然,我可以在局部视图周围放置一个表,并以这种方式对其进行条带化,但我不希望这样做。我认为您应该将模型中传递给局部视图的信息传递给它,或者将局部视图包装在一个元素中,并对其应用正确的css…例如:
@foreach (var item in Model.MyObjectList) {
<li class="odd|even">
@Html.Partial("DisplayObject", item)
</li>
}
@foreach(Model.MyObjectList中的变量项){
@Html.Partial(“DisplayObject”,item)
}
如果您可以限制对CSS3的支持,您可以使用:第n个孩子(奇数)
和:第n个孩子(偶数)
规则-如W3C的本页所示-
这些示例显示了如何在tr
标记上使用它,但它适用于任何可以应用选择器的对象:
<style type="text/css">
div p:nth-child(odd) { color:red; }
div p:nth-child(even) { color:green; }
</style>
<div>
<p>first</p>
<p>second</p>
<p>third</p>
</div>
第p分区:第n个子(奇数){颜色:红色;}
divp:n子级(偶数){color:green;}
首先
第二
第三
将行号作为属性添加到定义每个“项”的类的定义中
在局部视图中使用该属性来确定它是奇数行还是偶数行。通过
ViewBag
将模式
值从主视图传递到局部视图
@foreach (var item in Model.MyObjectList)
{
if(ViewBag.Mode == "odd")
{
ViewBag.Mode = "even";
}
else
{
ViewBag.Mode = "odd";
}
@Html.Partial("DisplayObject", item)
}
你能发布部分视图代码吗?你能发布呈现的html代码吗。现在我们有很多答案,基本上不相关了,但是谢谢!定义“所有浏览器”。你是否计划有一个?或者确实是一个IE8税?否则,你有IE9+和其他。我的意思是大多数浏览器都没有,不是吗?我正在认真考虑推荐这是给管理层的!