public class MyViewModel
{
public int Key { get; set; }
public IEnumerable<UsersClass> Users { get; set; }
}
,然后在控制器动作:
public ActionResult Index()
{
// that's your domain model => a list of UsersClass
// could be coming from wherever you want
var users = Enumerable.Range(1, 7).Select(x => new UsersClass
{
Id = x
});
// Now let's group those users into the view model:
// We will have 5 elements per row
var model = users
.Select((u, index) => new { User = u, Index = index })
.GroupBy(x => x.Index/5)
.Select(x => new MyViewModel
{
Key = x.Key,
Users = x.Select(y => y.User)
});
return View(model);
}
最后是强类型的观点是很琐碎:
@model IEnumerable<MyViewModel>
<table>
@foreach (var item in Model)
{
<tr>
@foreach (var user in item.Users)
{
<td>@user.Id</td>
}
<!-- That's just to fill the row with the remaining
td if we have less than 5 users. Obviously
depending on your requirements you could use
a single td with a calculated colspan or something else
-->
@for (int i = item.Users.Count(); i < 5; i++)
{
<td></td>
}
</tr>
}
</table>
@* Check to make sure your user class is not null *@
@if (Model.UserClass != null)
{
<table>
for (int i = 1; i <= 2; i++)
{
<tr>
for (int j = 1; j <= 5; j++)
{
<td>if (Model.UserClass[(j*i)-1] != null) { Model.UserClass[(j*i)-1] }</td>
}
</tr>
}
</table>
}
使用'
是的。 in @foreach –
不知道我是否正确理解你的问题,用户类是否有10个属性?或者你想显示来自多个“UserClass”对象的10个属性? –
回答
一如往常,并在每个ASP.NET MVC应用程序,我建议使用它适合于观的要求视图模型两行。因此,在这个视图中,您提到要组由每排5种元素的用户表:
,然后在控制器动作:
最后是强类型的观点是很琐碎:
显然,这种观点可以简化甚至进一步使用的显示模板:
并在相应的显示模板:
和UsersClass显示模板:
和结果:
来源
2012-05-08 13:15:51
不知道这是你正在寻找什么,但如果它不是确切的,你应该可以很容易修改:
我写得很快,但这应该是接近你所需要的。
来源
2012-05-08 13:21:19
相关问题