我经常读到使用ViewModel是从控制器向视图传递数据的MVC方式,但是如何将数据传递给_Layout.cshtml,例如页面标题、元描述、文章作者等等...
这种类型的数据应该如何通过MVC方式传递?我只需要使用ViewBag吗?
我经常读到使用ViewModel是从控制器向视图传递数据的MVC方式,但是如何将数据传递给_Layout.cshtml,例如页面标题、元描述、文章作者等等...
这种类型的数据应该如何通过MVC方式传递?我只需要使用ViewBag吗?
注入不是我喜欢的,但有时很有用 - 比如,如果您想显示用户名,您可以直接将以下代码放入您的布局/视图文件中:
@using System.Security.Claims
@using Microsoft.AspNetCore.Identity
@inject UserManager<ApplicationUser> userManager
@{
var userInfo = ((await userManager?.GetUserAsync(User))?.xxx);
// where 'xxx' is any property of ApplicationUser model
}
然后您可以在同一视图中使用@userInfo
来显示该信息。
更多信息: