【问题标题】:New to MVC | Data in a view from different sourcesMVC 新手 |来自不同来源的视图中的数据
【发布时间】:2008-11-25 13:46:26
【问题描述】:

好的,所以我一直在看一些 MVC 视频并阅读一些内容。 我是整个 MVC 模式的新手,到目前为止,我一直很高兴地沉浸在 Web 表单世界中!

就像有这么多演示一样,一切看起来都很棒,我相信随着我的前进,我会有很多我不明白的地方,但首先...

我可以看到你可以有一个强类型视图,它从控制器获取数据。如果我想要来自不同对象类型的视图中的数据会发生什么?假设我想展示一个网格的汽车和一个网格的人,它们无论如何都不相关??

谢谢 史蒂夫

【问题讨论】:

    标签: asp.net-mvc model-view-controller


    【解决方案1】:

    使用这样的两个属性设置您的强类型 ViewData 类

    public class MyViewData 
    { 
      public IEnumerable<Car> Cars { get; set; }
      public IEnumerable<People> People { get; set; }
    }
    

    然后将它们填充到控制器中, 对不起,重复。本着良好的 MVC 精神,尽量使用接口让您的代码更通用

    【讨论】:

      【解决方案2】:

      您可以保持然后分开(逻辑上和物理上)然后在视图中将各个部分拉到一起,而不是人为地将模型组合在一起。

      查看这篇文章,了解 [链接文本][1] 的详细说明。

      [1]:http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/部分请求

      【讨论】:

        【解决方案3】:

        您可以在 ViewData 哈希表中传递这两个对象,或者创建一个 MyViewViewModel,添加两个属性,然后从您的控制器中设置它们。

        【讨论】:

          【解决方案4】:

          我认为在这种情况下最好的做法是在 Models 文件夹中创建一个类来保存这两种类型。

          例子:

          public class CarsPeopleModel
              {
                  public List<Car> Cars { get; set; }
                  public List<Person> People { get; set; }
              }
          

          那么你的观点是:

          public partial class Index : ViewPage<MvcApplication1.Models.CarsPeopleModel>
              {
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-11-11
            • 1970-01-01
            • 2020-09-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-12
            相关资源
            最近更新 更多