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