假设您在一个页面中有一个人员 A 的列表和一个人员 B 的列表。而这两个是 L2S 中的独立类,代表两个不同的表。因此,您不能按如下方式传递单个模型:
...
@model PeopleA
...
@foreach(var peopleA in Model.People) ...
@foreach(var peopleB in //what?)
因此,我想,我有三个选择。
- 第一个是将页面划分为部分视图,以便我可以通过
RenderAction
帮助程序传递模型。因为我只会在这个选项对我没有吸引力时才使用这些部分视图。 - 第二种选择是使用我不想使用的 ViewBags,因为我更喜欢强类型模型。
- 最后一个,我即将使用但在这样做之前想问的最后一个是创建一个模型,如下所示:
模型MyPage.cs
public List<PeopleA> peopleA { get; set; }
public List<PeopleB> peopleB { get; set; }
我的控制器.cs
...
ModelMyPage m = new ModelMyPage();
m.peopleA = // query
m.peopleB = // another query
return(m);
你明白了。这是完成我的任务的有效方法,还是有更好的 c# 方法来做我想做的事?