2012-07-18 29 views
5

Quiero mostrar información sobre el usuario conectado (nombre de usuario, nombre de la empresa, número de notificaciones, etc.) en el diseño y/o vistas parciales. Estos serán comunes en todas las páginas. ¿Hay algún truco para hacer llegar estos datos a ellos, o se trata de extender cada modelo para tener esta información en ellos?Obtención de datos en una vista parcial o diseño utilizando MVC

Respuesta

22

que sugeriría usted puede ir para una acción infantil y invocarla desde el diseño, De esta manera se puede evitar la realización de la información en todos los modelos de vista.

Ej.

acción Niño

public class UserController 
{ 
    [ChildActionOnly] 
    public PartialViewResult UserInfo() 
    { 
    var userInfo = .. get the user information from session or db 

    return PartialView(userInfo); 
    } 
} 

Vista parcial

@model UserInfoModel 

@Html.DisplayFor(m => m.UserName) 
@Html.DisplayFor(m => m.CompanyName) 
... 

vista Diseño de

<header> 
    @Html.Action("UserInfo", "User") 
</header> 
+0

Gran - exactamente lo que yo esperaba. Gracias por tu respuesta. –

0

Aún puede crear la página maestra en MVC que se ve bien para su requerimiento. Mira este enlace para aprender cómo crear vistas parciales en MVC

PARTIAL VIEWS

Cuestiones relacionadas