2016-04-22 12 views
1

私はASP.NET MVC 5アプリケーションを持っています。ログインすると、「こんにちは!」というリンクをクリックすることができます。テンプレートで作成されたIndexViewModelを使用するデフォルトのページであるManage Viewが表示されます。ASP.NET ID管理ビュー内のユーザーIDを取得および編集していますか?

私は正常にそれがIndexViewModelで

public string Email { get; set; } 

を追加することにより、ユーザーの電子メールを表示し、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

テンプレートのように電話番号1の編集フィールドを作成する際に問題があります。 AddPhoneNumberコントローラとModelViewとビューもありますが、これらは電子メール用に作成しましたが、変更する方法を理解していないので保存してデータベースエントリも変更しますか? –

関連する問題