2013-09-29 65 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视图变得更容易。当然,我的观点很容易维护。