2016-11-03 12 views
0

Я пытаюсь программным образом обновить некоторые настраиваемые свойства профиля с помощью вызова ajax. Когда ajax срабатывает, свойство получает новое значение, затем обновляю страницу и выводим новое свойство. Однако он не сохраняется в базе данных [dbo.UserProfile]. Если я очищу cache, тогда снова появится старое значение.Обновление свойства DNN Профиль программно

Вот код моего веб-метода:

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

Свойства настраиваемого профиля Ключи чувствительны к регистру. Так что если вы сделали пользовательское свойство профиля с именем myproperty, то вы должны использовать его как это:

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

Не нравится:

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

Я предполагаю, что вы сделали создать пользовательское свойство под «Администратор > Настройки сайта> Настройки учетной записи пользователя> Настройки профиля ".

Испытан это на DNN 07.03.03, так что, возможно, он работает в разных 8.

+0

да, я использую точно такие же буквы, что и PropertyName из таблицы ProfilePropertyDefinition. Похоже, что обновления временно хранятся в кеше, но не знают, как это сделать. – alwaysVBNET

+0

Когда я вызываю 'UserController.UpdateUser', база данных автоматически обновляется. Я также просто проверил фрагмент в DNN 8. Он работает там, также обновляется DNN 8 db. – VDWWD

+0

Возможно, мой стол поврежден? Знаете ли вы о чем-либо, что может помешать этим изменениям? – alwaysVBNET

0

Я считаю, что вам нужно использовать DotNetNuke.Entities.Profile.ProfileController.UpdateUserProfile().

Try:

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

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

ProfileController.UpdateUserProfile(oProfileUserInfo) 

 Смежные вопросы

  • Нет связанных вопросов^_^