所以我有一个ASP.NET MVC 5应用程序。登录时,您可以点击“Hello ,!”链接。并且您可以看到管理视图,它是模板生成的默认页面,它使用IndexViewModel。
我成功地通过添加
显示用户的电子邮件public string Email { get; set; }
在IndexViewModel中,然后在ManageController中
var model = new IndexViewModel
{
HasPassword = HasPassword(),
PhoneNumber = await UserManager.GetPhoneNumberAsync(userId),
TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId),
Logins = await UserManager.GetLoginsAsync(userId),
BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId),
Email = await UserManager.GetEmailAsync(userId)
};
然而,这很容易,因为UserManager已经有一个名为GetEmailAsync的任务。如何从这样的数据库中检索数据,但是对于我添加的其他字段? (用户由RegisterStudentViewModel创建) 我试图创建另一个任务,但它没有用。我该如何解决这个问题?我希望他们能够看到他们的详细信息甚至编辑它们(比如更改已经存在的电话号码)
答案 0 :(得分:4)
您可以按如下方式加载整个用户实体:
var user = UserManager.Users.FirstOrDefault(u => u.Id == userId);
从那里,您可以随心所欲地为用户做好准备。
或者,使用FindById(userId)
:
var user = UserManager.FindById(userId);