有没有人对使用ASP.NET MVC框架进行主/详细信息页面有任何建议/最佳实践?
我有一页客户信息,每一个我需要显示0个或更多关于该客户的相关记录。
数据库模式如下所示:
客户 - 一对多 - > ClientData
我目前正在使用LINQ来处理使用存储过程填充的数据类。所以要获取我写的客户信息:
var clientQuery = from client in dataContext.GetClients ()
orderby client.CompanyName
select client;
当每个客户端在视图中呈现时,我需要显示相关数据,因此我需要为每个找到的客户端调用它:
var clientDataQuery = from clientData in dataContext.GetClientData (client.ClientId)
orderby clientData.CreatedDate
select clientData;
实现这一目标的最佳方式是什么?
谢谢, 基隆
答案 0 :(得分:2)
使用IDictionary&gt ;,然后将其包装到viewdata类中。
这将允许您在控制器级别进行过滤/排序,同时保持客户端与其数据之间的严格关联。
示例:
public class ClientController{
public ViewResult ClientList(){
var clientsAndData = new Dictionary<Client,IEnumerable<ClientData>>();
var clients = from client in dataContext.GetClients()
orderby client.CompanyName
select client;
foreach( var client in clients )
clientsAndData.Add(
client,
(
from clientData in dataContext.GetClientData(client.ClientId)
orderby clientData.CreatedDate
select clientData
).ToList()
);
return View( new ClientListViewData{ Clients = clientsAndData } );
}
}
public class ClientListViewData{
public IDictionary<Client,IEnumerable<ClientData>> Clients{ get; set; }
}