1

必要最小限の 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にかなり慣れていないので、正しくしたいだけです。

4

1 に答える 1