0

我正在尝试通过ajax调用以编程方式更新一些自定义配置文件属性。当 ajax 触发时,属性获取新值,然后我刷新页面并显示新属性。但是它没有保存在数据库中[dbo.UserProfile]。如果我清除cache,那么旧值会重新出现。

这是我的网络方法的代码:

   Dim oProfileUserInfo As UserInfo = UserController.Instance.GetUserById(PortalSettings.PortalId, ProfileUserID)
   oProfileUserInfo.Profile.SetProfileProperty("myproperty", "new value")
   UserController.UpdateUser(PortalSettings.PortalId, oProfileUserInfo, True, False)

我正在使用 DNN 8.0.4

有任何想法吗?

4

2 回答 2

0

自定义配置文件属性 Keys 区分大小写。因此,如果您使用 name 创建了一个自定义配置文件属性myproperty,那么您应该像这样使用它:

oProfileUserInfo.Profile.SetProfileProperty("myproperty", "new value")

不像这样:

oProfileUserInfo.Profile.SetProfileProperty("myProperty", "new value")

我假设您确实在“管理员 > 站点设置 > 用户帐户设置 > 配置文件设置”下创建了自定义属性。

在 DNN 07.03.03 上对此进行了测试,所以它在 8 中可能会有所不同。

于 2016-11-03T09:50:49.547 回答
0

我相信您需要使用 DotNetNuke.Entities.Profile.ProfileController.UpdateUserProfile()。

尝试:

Dim oProfileUserInfo As UserInfo = UserController.Instance.GetUserById(PortalSettings.PortalId, ProfileUserID)

oProfileUserInfo.Profile.SetProfileProperty("myproperty", "new value")

ProfileController.UpdateUserProfile(oProfileUserInfo)
于 2016-11-03T14:03:23.990 回答