0

我正在编写一个 Asp.net MVC 应用程序(我的第一个 MVC 应用程序)。我需要将数据传递给 _Layout 视图以自定义页面上的页眉和页脚 - 哪些用户已登录,如果他们有任何通知等。_Layout 页面始终需要此信息,但子页面不需要。

我应该如何将这些数据传递给视图?我可以创建一个LoggedInUser视图可以访问的属性,就像有一个Model和一样ViewBag吗? LoggedInUser可以由基本控制器类填充。

还是有更好的方法来实现这一点?

4

2 回答 2

1

要检测身份验证:

User.Identity.IsAuthenticated

然后你可以使用部分ASP.NET MVC 3: Layouts and Sections with Razor or/and @Html.RenderAction( Html.RenderAction 和 Html.Action )

于 2012-09-27T13:07:43.393 回答
1

如果您使用 MembershipProvider 和/或 RoleProvider ,您可以按照 webdeveloper 指出的方式获取当前用户的身份User.Identity.Name,如果显示它的名称是您想要的。

您也可以输入您_layout的型号以使用特定型号,但我不建议这样做。有关更多详细信息,请参阅此问题答案

最后,您可以在控制器上填充 ViewBag 属性以获取所需的用户信息。

我想指出你可以做一个局部视图来实现这一点,并避免_layout在每个请求上键入和填充 ViewBag。

于 2012-09-27T14:31:02.257 回答