2013-09-29 101 views
1

我對MVC有點新,所以我需要一點幫助。初始化部分視圖的數據

我有這樣的局部視圖:

@model MySite.Models.Account.UserProfile 

<ul id="nav-user"> 
    <li class="user-name"> 
     @String.Format("{0} {1}", Model.FirstName, Model.LastName) 
    </li> 
</ul> 

,並在我的佈局文件,使其:

<nav id="main"> 
    @Html.Partial("NavUserPartial") 
</nav> 

在的WebForms,我會使用一個名爲NavUser這裏的用戶控件,並設置已登錄在用戶控制背後的代碼中的數據。

我該怎麼做在MVC中使用部分視圖?我在哪裏設置數據?

回答

4

對於主視圖,請創建一個viewmodel類。

public class MyViewModel 
{ 
    public UserProfile UserProfile { get; set; } 
} 

,並用它在局部視圖像這樣:

@model UserProfile 

<ul id="nav-user"> 
    <li class="user-name"> 
     @String.Format("{0} {1}", Model.FirstName, Model.LastName) 
    </li> 
</ul> 

當渲染主視圖中,你可以通過任何你需要像這樣:

<nav id="main"> 
    @Html.Partial("NavUserPartial", Model.UserProfile) 
</nav> 

簡單的定製代碼滿足您的需求。

我使用viewmodels很多,總體而言,他們使設計MVC視圖變得更容易。當然,我的觀點很容易維護。