必要最小限の MVC プロジェクト テンプレートから、次ApplicationUser.cs
の新しいユーザー アカウント設定を表示するように拡張しましDisplayName
た (これは、サイトの一部としてチャット アプリケーションで使用される表示名です)。
public string DisplayName { get; set; }
新しいアカウントを登録して DisplayName を指定できるように、必要最小限の MVC プロジェクト テンプレートを変更しました。また、データベースでもそれを確認できるので、すべて問題ありません (プロセスについては、こちらで説明しています)。とにかく、私が今直面している問題は、ユーザーがこの設定を変更できるようにしたいということです。そのため、アカウント管理ページを拡張して、この設定を表示するテキスト フィールドを含む HTML 部分ページを表示しました。この部分的なページを投稿すると、次のアクションが呼び出されます。
// POST: /Account/Manage
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ManagePublicSettings(ManagePublicSettingsViewModel model)
{
ViewBag.ReturnUrl = Url.Action("Manage");
if (ModelState.IsValid)
{
IdentityResult result = await UserManager.ChangeDisplayName(User.Identity.GetUserId(), model.DisplayName);
if (result.Succeeded)
{
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
return RedirectToAction("Manage", new { Message = ManageMessageId.ChangeAccountSettingsSuccess });
}
else
{
AddErrors(result);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
ChangeDisplayName
(このメソッドによって呼び出される) どのように見えるべきですか? また、これは MVC でアカウント管理ポータルを拡張する正しい方法ですか? ApplicationUserManager
このようにクラスを拡張する必要がありますか?私はMVCにかなり慣れていないので、正しくしたいだけです。