MVC 5在共享布局中显示自定义配置文件



我刚刚开始学习MVC 5,我正在实现自定义身份。

所以我创建了此类:

public class ApplicationUser : IdentityUser
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    [Required]
    public string Email { get; set; }
    public string Avatar { get; set; }
}

现在我的问题似乎真的很简单,但是我花了几个小时而没有找到解决方案。

我想做的是在部分视图中显示自定义用户信息。

在_layout.cshtml中,我有一个部分视图:

<div class="top-nav clearfix">
     @Html.Partial("UserInfo")
</div>

我想做的是在UserInfo.cshtml中显示自定义属性头像?

<span class="username">@User.Identity.GetUserName()</span>
<span class="avatar">@?????forAvatar ?</span>

我已经尝试在UserInfo.cshtml中定义模型:

@model Models.ApplicationUser
// and using it like this in my view
<span class="avatar">@ViewData.Model.Avatar</span>

但是,当我单击作者页面

时,这给我带来了错误

传递到字典中的模型项是'system.collections.generic.list'1 [models.author]'的类型,但是该词典需要类型'models.applicationuser'的模型项。

任何帮助将不胜感激。

谢谢

您必须向UserManager询问ApplicationUser对象。为简单起见,我们可以将其塞入ViewBag ...

var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext());
var user = userManager.FindById(User.Identity.GetUserId());
ViewBag.CurrentUser = user;

(您需要添加一些using语句以引入一些名称空间,包括Microsoft.AspNet.IdentityMicrosoft.AspNet.Identity.EntityFramework

,您应该可以在视图中访问它...

<span class="avatar">@ViewBag.CurrentUser.Avatar</span>

相关内容

  • 没有找到相关文章

最新更新