我需要一些關於如何生成數據來自3/4模型的視圖的建議。 我附上了一個圖像,其中數據來自3個模型。我已經使用3種不同的GridView並綁定了不同的數據源,以網頁形式完成了這些工作。需要幫助來生成視圖,其中數據來自多個模型
但現在我必須在MVC 3中做同樣的事情,並發現它很難。 我真的很感激,如果有人可以給我一些關於如何產生這種觀點的指導方針。
我需要一些關於如何生成數據來自3/4模型的視圖的建議。 我附上了一個圖像,其中數據來自3個模型。我已經使用3種不同的GridView並綁定了不同的數據源,以網頁形式完成了這些工作。需要幫助來生成視圖,其中數據來自多個模型
但現在我必須在MVC 3中做同樣的事情,並發現它很難。 我真的很感激,如果有人可以給我一些關於如何產生這種觀點的指導方針。
你可以通過通過所有的型號爲「樣板」對象的屬性,然後用局部視圖,從而使得各部分,通過他們使用的特定模式。
@Html.Partial("ViewName", this.Model.SubModel)
或者,使用子動作,並有一個單獨的頁面位操作方法。即添加到您的父視圖:
@Html.Action("ActionName", "ViewName")
優勢與後者是可以使用的緩存策略([的OutputCache]在你的action屬性),用於這是更靜態的其他部分部分頁面。
您可以使用Tuple()將多個記錄集(模型)返回到視圖。 Tuple()是C#4.0中的一項新功能。查看關於Tuple()的這篇文章。
http://www.abhisheksur.com/2010/11/working-with-tuple-in-c-40.html
我將定義含有3個屬性
public class CompositeModel
{
public MenuModel Menu {get; set;}
public OrderModel Order {get; set;}
public RestaurantModel Restaurant {get; set;}
}
一個模型,該模型傳遞給視圖。
您可以使用partialViews並在頁面上呈現它們,或者您可以通過Viewbag傳遞儘可能多的數據。例如:
ViewBag.Model1 = yourModel1;
ViewBag.SomeData = someOtherData;.....
然後在視圖中您yust使用它:
@ViewBag.Model1
你甚至可以通過Ajax調用獲取數據,並通過您的樣品的外觀我會採取這一方法,並使用jQuery模板渲染視圖。