[英]Rowspan in the view (mvc4)
我正在使用带有实体框架的MVC 4。 我有以下问题。
我在视图中的原始数据以这种方式显示:
id | name| email| roles| modules
1|name1| email1| role1| module1
1| name1| email1| role2| module1
1| name1| email1|role3| module1
我需要做的是这样的跨度
id | name| email| roles| modules
1|name1| email1| role1, role2, role3| module1
我相信最好在控制器中创建它而不是在视图中创建它。 如果是这样,如何使用Linq或简单列表进行操作?
您需要的只是GroupBy
:-
IEnumerable<TestForms.Models.v_HmsUnacceptedForms> result = data.GroupBy(x => x.id)
.ToList() //To force run projection in memory.
.Select(x =>
{
var firstRecord = x.FirstOrDefault();
return new TestForms.Models.v_HmsUnacceptedForms
{
id = x.Key,
name = firstRecord != null ? firstRecord.name : String.Empty,
email = firstRecord != null ? firstRecord.email: String.Empty,
roles = String.Join(",",x.Select(z => z.roles),
modules = firstRecord != null ? firstRecord.modules : String.Empty
};
});
在这里,我考虑过,对于每个id,您都需要name,email and modules
列。 如果不是这种情况,则可以按多个列而不是像new { x.id, x.name, x.email }
这样的id进行new { x.id, x.name, x.email }
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.