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

1 回答 1

4

对于主视图,创建一个视图模型类。

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>

只需根据您的需要定制代码。

我经常使用视图模型,总体而言,它们使设计 MVC 视图变得更加容易。当然,我的观点更容易维护。

于 2013-09-29T22:06:10.727 回答