2012-11-21 37 views
1

我是新的MVC4和MVC。添加一個類別列表到MVC4的所有頁面

我有一個homecontroller和一個categorycontrollercategorycontroller將數據從模型發送到categoryIndex視圖。這很好。

但現在我想在所有可用的控制器上添加categorylist

我已經解決了這個問題,在所有類別中添加了return view(db.categorys.ToList());並將categoryIndex添加到共享文件夾中。在_layout.cshtml我添加@ RenderPage(「〜/」)`這個工程。

但是,當我必須通過多於(db.categorys.ToList())在返回它出錯。

我該如何解決這個問題。如何正確添加每個控制器和頁面的類別列表?

+0

錯在何處?任何錯誤消息? –

回答

0

我會建議將常用的東西,如類別列表扔到ViewBag中。這將允許你進行一些分離,並只返回視圖中需要的內容。希望這有助於!

1

CategoryList集合添加爲您的ViewModel(所有頁面)的屬性。您可以將其添加到基類並從中繼承。

public class Category 
{ 
    public int ID { set;get;} 
    public string Name { set;get;} 
} 
public class BasePageViewModel 
{ 
    public List<Category> CategoryList { set;get;} 

    BasePageViewModel() 
    { 
    CategoryList=new List<Category>(); 
    } 
} 

現在,您可以從這個基類繼承其他視圖模型。

public class ProductViewModel : BasePageViewModel 
{ 
    public string ProductName { set;get;} 
    //Other properties 
} 

現在,在您看來,這是強類型到ProductViewModel,您可以撥打Html.Partial展現CategoryList局部視圖。

@model ProductViewModel 
<h3>This page is for product @Model.ProductName</h3> 
@Html.Partial(Model.CategoryList) 

假設你有一個局部視圖來渲染所屬分類

相關問題