如何更新 MVC 用户成员身份记录



我读过几篇不同的文章,但我认为它们不适用于我的场景。

我正在尝试更新附加到用户的配置文件;但是,它不会让我通过ModelState.IsValid部分,因为我不包括密码字段。

我想更新一些字段,但不是密码字段。 那么,如何从注册模型中省略这些呢?

这是我的代码:

'
' POST: /Account/EditRegistry
<HttpPost()> _
Public Function EditRegistry(registerModel As RegisterModel) As ActionResult
    If ModelState.IsValid Then
        ' get membership from user name
        Dim user = Membership.GetUser(registerModel.UserName)
        ' get user profile
        Dim db0 = New UserProfileDbContext
        Dim profile = db0.UserProfiles.Where(Function(p) p.UserId = user.ProviderUserKey).Single()
        ' TODO: update profile
        profile.IsCompanyOwner = registerModel.IsCompanyOwner
        profile.IsBlogOwner = registerModel.IsBlogOwner
        profile.CompanyId = registerModel.Company
        profile.BlogId = registerModel.Blog
        db0.Entry(profile).State = EntityState.Modified
        db0.SaveChanges()
        ' get model changes to membership object

        ' update membership object from model

    End If
    ' If we got this far, something failed, redisplay form
    Return View(registerModel)
End Function

编辑:

想法! 我必须为此创建新模型吗?

您应该创建一个不包含Password字段的新视图模型,然后让EditRegistry控制器操作将此视图模型作为参数,而不是RegisterModel域模型。

最新更新