MVC 4 - como eu passo os dados do modelo para uma visão parcial?
Estou construindo uma página de perfil que terá várias seções relacionadas a um modelo específico (Inquilino) - AboutMe, MyPreferences - esse tipo de coisa. Cada uma dessas seções será uma visão parcial, para permitir atualizações parciais de páginas usando o AJAX.
Quando clico em umActionResult
no TenantController eu sou capaz de criar uma visão fortemente tipada e os dados do modelo são passados para a view fine. Eu não posso conseguir isso com visões parciais.
Eu criei uma visão parcial_TenantDetailsPartial
:
@model LetLord.Models.Tenant
<div class="row-fluid">
@Html.LabelFor(x => x.UserName) // this displays UserName when not in IF
@Html.DisplayFor(x => x.UserName) // this displays nothing
</div>
Eu então tenho uma visãoMyProfile
que renderizará visualizações parciais mencionadas:
@model LetLord.Models.Tenant
<div class="row-fluid">
<div class="span4 well-border">
@Html.Partial("~/Views/Tenants/_TenantDetailsPartial.cshtml",
new ViewDataDictionary<LetLord.Models.Tenant>())
</div>
</div>
Se eu envolver o código dentro do DIV em_TenantDetailsPartial
dentro@if(model != null){}
nada é exibido na página, então estou supondo que há um modelo vazio sendo passado para a exibição.
Por que quando eu crio uma visão fortemente tipificada de umActionResult
o usuário na 'sessão' é passado para a exibição? Como pode passar o usuário na 'sessão' para uma visão parcial que não é criada a partir de umaActionResult
? Se eu estiver faltando alguma coisa sobre o conceito, por favor explique.