使用户能够在MVC中编辑自定义帐户设置

亚历山德鲁

从准MVC项目模板开始,我已经扩展ApplicationUser.cs为显示一个新的用户帐户设置,DisplayName设置称为(其显示名称,人们将在聊天应用程序中使用该显示名称作为网站的一部分):

public string DisplayName { get; set; }

我修改了准MVC项目模板,以便我可以注册一个新帐户并指定DisplayName,甚至可以在数据库中看到它,所以一切都很好(此过程在此处介绍)。无论如何,我现在面临的问题是我想允许用户更改此设置,因此我扩展了帐户管理页面以显示带有显示此设置的文本字段的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还是很陌生,只是想把它弄对。

埃里克·冯肯布施

不,您不应该像这样扩展UserManager。这真的很简单。您有以下代码:

var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

只需设置用户的DisplayName属性并更新它们:

user.DisplayName = Model.DisplayName;
await UserManager.UpdateAsync(user);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Keycloak:从“编辑帐户”页面更新自定义用户属性

在Woocommerce编辑帐户页面中添加自定义字段

在Devise用户模型中编辑自定义字段

使用Devise User创建自定义编辑用户表单

Symfony中的自定义表单编辑设置同意

每个客户只能在“我的帐户”>“在WooCommerce中编辑帐户”上编辑一次自定义字段

为什么我的android自定义帐户没有显示在“帐户和设置”中?

创建/编辑/删除用户时,Django管理面板中的FOREIGN KEY约束失败。(使用自定义用户模型。)

在Woocommerce编辑帐户页面中添加其他自定义字段

隐藏自定义结帐字段,使其不显示在WooCommerce我的帐户编辑地址中

如何使用 Powershell 为组中的用户分配自定义应用程序设置策略?

如何使用POST数据中的allauth save_user方法设置自定义用户字段

在WooCommerce我的帐户自定义菜单项内容中定义用户变量

如何使用身份在MVC 5中自定义用户表?

如何有效地在Javascript中定义自定义HTMLElement属性,以便能够使用HTML进行设置?

使用现有的Devise用户/编辑功能更新自定义用户属性

为Woocommerce中的特定用户角色自定义我的帐户新菜单项

通过xamarin.forms中的自定义UI向用户帐户添加数据

根据Woocommerce中的用户角色自定义客户新帐户邮件

我可以使用自定义iOS UI登录用户的Google Drive帐户吗?

在WooCommerce中设置“我的帐户”自定义项目终结点标题

使用Azure Powershell为存储帐户设置自定义域

Django自定义用户电子邮件帐户验证

不再能够在Azure门户中自定义刀片

自定义 bookdown 中的“编辑”链接

使用ApplicationSettingsBase保存自定义设置的C#中的自定义对象的列表

Django自定义用户---在admin中编辑新的CustomUser字段

通过QTreeView中的QAbstractItemModel实现的用户可编辑复选框的自定义

如何在Liferay的“用户编辑”屏幕中添加自定义部分?