2016-04-22 23 views
1

所以我有一個ASP.NET MVC 5應用程序。當您登錄時,您可以點擊「Hello,!」鏈接您可以看到管理視圖,該視圖是由使用IndexViewModel的模板製作的默認頁面。ASP.NET身份檢索和編輯管理視圖內的用戶數據?

我成功地使它顯示用戶的電子郵件中加入

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創建) 我試圖創建另一個任務,但它沒有工作。我將如何去解決這個問題?我希望他們能夠看到他們的詳細信息,甚至進行修改(比如像已經存在的電話號碼的改變)

回答

4

如下您可以將整個用戶實體:

var user = UserManager.Users.FirstOrDefault(u => u.Id == userId); 

從那裏,你可以按照用戶的要求去做。

另外,使用FindById(userId)

var user = UserManager.FindById(userId); 
+1

謝謝你,它的工作原理! :) –

+0

@BudaCristian我的榮幸。 –

+0

我在創建編輯字段時遇到問題,如模板中有一個電話號碼。有一個AddPhoneNumber控制器和模型視圖,也是一個視圖,我已經創建了這些但爲電子郵件,但我不知道如何改變它,然後保存它,所以它也改變了數據庫條目? –

相關問題