【问题标题】:MVC multiple data-models passed to a view [duplicate]MVC多个数据模型传递给一个视图[重复]
【发布时间】:2011-10-04 20:20:26
【问题描述】:

可能重复:
ASP.NET MVC - View with multiple models

使用 ASP.NET MVC 3.0,我如何将多个数据模型从我的控制器传递到我的视图?我希望有一个优雅的解决方案...谢谢!

顺便说一句 - 我可以提供代码示例,但我认为这是通用的,不足以保证它

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    不幸的是,没有一种真正优雅的方式来做到这一点。我首选的方法是封装这两个对象并将其发送到视图。

    public class City{
    public Mall TheMall;
    public School TheSchool;
    }
    

    然后您的视图将被强类型化为 City,您将使用 Model.TheMall.PropertyModel.TheSchool.Property 来访问您需要的内容。

    另一种方法是使用 ViewData 包。你可以做的是这样填充它:

    ViewData["City"] = "Toronto";  //random string
    ViewData["Mall"] = new TheMall(...);
    return View(MyViewName);
    

    然后在您看来,您将可以使用您在控制器中分配的键(在本例中为“City”、“Mall”)访问这些。

    希望有帮助!

    【讨论】:

    • 第一种方法通常被称为 ViewModel,通常人们会有一个 ViewModels 文件夹来保存这些,与 Models 文件夹分开。我个人称其为 ModelProjections,因为它本质上是一个抽象层,允许您为您的 UI 编写模型的投影。
    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 2011-07-26
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2014-09-14
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多