【问题标题】:How to return two types of objects in an ASP.net MVC view如何在 ASP.net MVC 视图中返回两种类型的对象
【发布时间】:2011-03-02 11:38:51
【问题描述】:

我说的是类/对象,我将作为详细信息返回。但是还有第二个类与我要列出的第一个类相关(并且可以选择查看详细信息)。我如何获得这两者的回报?

示例就像在一个项​​目中作为主要部分,但可能有与主要项目相关的细节或其他项目。我将使用 linq 查询选择它们,但是如何将它们返回到同一视图?

我是否需要某种部分或其他形式来显示第二种对象类型? 我看不到在哪里返回我可以返回的视图。

我现在的想法是创建一个包含这两种对象类型的新类,但我知道必须有更好的方法。

【问题讨论】:

    标签: asp.net asp.net-mvc linq


    【解决方案1】:
    My thought for right now is to create a new class that contains both of the object types but I know there has to be a better way.
    

    这是正确的方法。创建一个 ViewModel 类,其中包含视图所需的所有数据并将其传递给视图。

    【讨论】:

    • 我们可以同意将其称为“当前架构上可接受的”方式吗?虽然这种技术可行,但我发现它非常难以维护。
    • @Jeff - OK ;-) - 我使用这种技术已经有一段时间了(所有我的视图都使用视图模型)并且我没有注意到太多的维护疼痛。相反,更容易查看视图需要哪些数据,因为它位于一个位置。更不用说类型安全的好处了。
    • ViewModel - 模型技术的维护问题源于需要为每个创建的屏幕创建 2 个模型
    • @Jeff - ?什么2个型号?您是在谈论“实体编辑”视图,其中您使用 2 个类作为视图模型和实体模型?并非所有视图都这样。有些没有实体模型,有些使用超过 2 个类...
    【解决方案2】:

    您可以通过 ViewStateViewBag 将其传递给 View(取决于您使用的 MVC 版本)。

    【讨论】:

      【解决方案3】:

      对于第一个对象“主对象”,将其作为此视图的模型返回,并返回详细信息 将它们放入 ViewState 并将它们投射回视图中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-07
        • 2021-03-22
        • 1970-01-01
        • 2011-06-26
        • 1970-01-01
        • 2010-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多