以编程方式更新DNN配置文件属性

时间:2016-11-03 01:16:57

标签: dotnetnuke dotnetnuke-8

我正在尝试通过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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

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

不喜欢这样:

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

我假设您确实在" Admin>下创建了自定义属性。网站设置>用户帐户设置>个人资料设置"。

  

在DNN 07.03.03上测试过,所以它可能在8中有所不同。

答案 1 :(得分: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)