2013-09-29 7 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 здесь и установить logged- в данных в коде позади пользовательского элемента управления.

Как это сделать с помощью частичного просмотра в 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. Конечно, мои взгляды намного легче поддерживать.

Смежные вопросы