初始化部分视图的数据

时间:2013-09-29 22:00:35

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我对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中使用部分视图?我在哪里设置这些数据?

1 个答案:

答案 0 :(得分: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视图变得更加容易。当然,我的观点更容易维护。