假设您在页面中有一个人员A列表和一个人员B列表。这两个是L2S中的独立类,代表两个不同的表。因此,您不能通过单个模型,如下所示:

...
@model PeopleA
...
@foreach(var peopleA in Model.People) ...

@foreach(var peopleB in //what?)

因此,我想我有三个选择。
  • 第一个是将页面分为部分 View ,以便我可以通过RenderAction帮助器传递模型。因为我只会使用这些局部 View 一次,但这个选项似乎对我来说并不吸引。
  • 第二个选择是使用我不想使用的ViewBags,因为我更喜欢强类型模型。
  • 最后,我要使用的最后一个要创建的模型是,如下所示:

  • ModelMyPage.cs
    public List<PeopleA> peopleA { get; set; }
    public List<PeopleB> peopleB { get; set; }
    

    MyController.cs
    ...
    ModelMyPage m = new ModelMyPage();
    m.peopleA = // query
    m.peopleB = // another query
    return(m);
    

    你知道了。这是完成任务的有效方法,还是有更好的C#方法来完成我想要的工作?

    最佳答案

    创建一个特定于该页面的ViewModel,就像您选择的3一样。

    我相信这也是推荐的方法。

    09-04 10:58