Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何更新MVC用户成员记录?_Asp.net Mvc_Vb.net_Asp.net Mvc 3_Entity Framework_Asp.net Membership - Fatal编程技术网

Asp.net mvc 如何更新MVC用户成员记录?

Asp.net mvc 如何更新MVC用户成员记录?,asp.net-mvc,vb.net,asp.net-mvc-3,entity-framework,asp.net-membership,Asp.net Mvc,Vb.net,Asp.net Mvc 3,Entity Framework,Asp.net Membership,我读过一些不同的文章,但我认为它们不适用于我的场景 我正在尝试更新附加到用户的配置文件;但是,它不允许我通过ModelState.IsValid部分,因为我没有包含密码字段 我想更新一些字段,但不想更新密码字段。那么,如何从RegisterModel中省略这些呢 这是我的密码: ' ' POST: /Account/EditRegistry <HttpPost()> _ Public Function EditRegistry(registerModel As RegisterMo

我读过一些不同的文章,但我认为它们不适用于我的场景

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

我想更新一些字段,但不想更新密码字段。那么,如何从RegisterModel中省略这些呢

这是我的密码:

'
' 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
'
'发布:/Account/EditRegistry
_
作为ActionResult的公共函数EditRegistry(registerModel作为registerModel)
如果ModelState.IsValid,则
'从用户名获取成员资格
Dim user=Membership.GetUser(registerModel.UserName)
'获取用户配置文件
Dim db0=新的UserProfileDbContext
Dim profile=db0.UserProfiles.Where(函数(p)p.UserId=user.ProviderUserKey.Single()
'待办事项:更新配置文件
profile.IsCompanyOwner=registerModel.IsCompanyOwner
profile.IsBlogOwner=registerModel.IsBlogOwner
profile.CompanyId=注册模型公司
profile.BlogId=registerModel.Blog
db0.Entry(profile).State=EntityState.Modified
db0.SaveChanges()
'获取对成员身份对象的模型更改
'从模型更新成员资格对象
如果结束
“如果我们走到了这一步,有些事情失败了,重新显示形式
返回视图(registerModel)
端函数
编辑:


主意!我必须为此创建一个新模型吗?

您应该创建一个不包含
密码
字段的新视图模型,然后让您的
编辑注册表
控制器操作将此视图模型作为参数,而不是
注册表模型
域模型。

这就是我所做的;但是,它仍然没有验证模型,也没有向我显示任何验证消息。它只是说,“帐户修改不成功。请更正错误并重试。”但是,我的@Html.ValidationMessageFor(函数(m)m.Email)没有显示任何错误。请尝试在视图中放置
@Html.ValidationSummary(false)
,以显示所有验证错误的列表。是的,达林!你又做了!问题是我的用户名字段,但在添加验证摘要之前,我无法看到该字段。对于希望更新成员资格模型本身方面的任何人,请参见以下内容: