Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 需要帮助生成视图,其中数据来自多个模型_Model View Controller_Asp.net Mvc 3 - Fatal编程技术网

Model view controller 需要帮助生成视图,其中数据来自多个模型

Model view controller 需要帮助生成视图,其中数据来自多个模型,model-view-controller,asp.net-mvc-3,Model View Controller,Asp.net Mvc 3,我需要一些关于如何生成数据来自3/4模型的视图的建议。 我附上了一张图片,其中数据来自3个模型。我已经在web表单中使用了3种不同的GridView并绑定了不同的数据源 但是现在我不得不在MVC3中做同样的事情,我发现这很困难。 如果有人能给我一些关于如何生成这种视图的指导,我将不胜感激 您可以将所有模型作为“模型”对象的属性传递,然后使用局部视图渲染每个部分,传递它们使用的特定模型 @Html.Partial("ViewName", this.Model.SubModel) 或者,使用子操作

我需要一些关于如何生成数据来自3/4模型的视图的建议。 我附上了一张图片,其中数据来自3个模型。我已经在web表单中使用了3种不同的GridView并绑定了不同的数据源

但是现在我不得不在MVC3中做同样的事情,我发现这很困难。 如果有人能给我一些关于如何生成这种视图的指导,我将不胜感激


您可以将所有模型作为“模型”对象的属性传递,然后使用局部视图渲染每个部分,传递它们使用的特定模型

@Html.Partial("ViewName", this.Model.SubModel)
或者,使用子操作,并对页面的位使用单独的操作方法。i、 e.将其添加到父视图:

@Html.Action("ActionName", "ViewName")
后者的优点是,您可以对页面中比其他部分更静态的部分使用缓存策略(操作中的[OutputCache]属性)。

您可以使用Tuple()向视图返回多个记录集(模型)。Tuple()是C#4.0中的一个新特性。查看这篇关于Tuple()的文章


我将定义一个包含3个属性的模型

public class CompositeModel
{
   public MenuModel Menu {get; set;}
   public OrderModel Order {get; set;}
   public RestaurantModel Restaurant {get; set;}
}

然后将此模型传递给视图。

您可以使用PartialView,并在页面上呈现它们,或者您可以通过Viewbag传递任意数量的数据。例如:

ViewBag.Model1 = yourModel1;
ViewBag.SomeData = someOtherData;.....
然后在你看来你必须使用它:

@ViewBag.Model1
您甚至可以通过ajax调用获取数据,从您的示例来看,我将采用这种方法并使用jquery模板呈现视图