我正在尝试通过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
有什么想法吗?
答案 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)