2016-11-03 2 views
0

Ich versuche, einige benutzerdefinierte Profileigenschaften programmgesteuert über einen Aufruf ajax zu aktualisieren. Wenn der Ajax ausgelöst wird, erhält die Eigenschaft den neuen Wert, dann aktualisiere ich die Seite und die neue Eigenschaft wird angezeigt. Es ist jedoch nicht in der Datenbank [dbo.UserProfile] gespeichert. Wenn ich den cache löschen, wird der alte Wert wieder angezeigt. HierDNN-Profileigenschaft programmgesteuert aktualisieren

ist der Code meiner Web-Methode:

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

Ich bin mit DNN 8.0.4

Irgendwelche Ideen?

Antwort

0

Bei der benutzerdefinierten Profileigenschaft Schlüssel wird zwischen Groß- und Kleinschreibung unterschieden. Also, wenn Sie eine benutzerdefinierte Profileigenschaft mit dem Namen myproperty gemacht, dann sollten Sie es wie folgt verwenden:

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

Nicht so:

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

Ich gehe davon aus Sie die benutzerdefinierte Eigenschaft unter „Admin erstellt haben > Websiteeinstellungen> Benutzerkontoeinstellungen> Profileinstellungen ".

testeten diese auf DNN 07.03.03, vielleicht funktioniert es anders in 8.

+0

ja, ich bin mit genau den gleichen Buchstaben Fall als Property vom ProfilePropertyDefinition Tisch. Es sieht so aus, als würden die Updates vorübergehend im Cache gespeichert, wissen aber nicht, wie sie damit umgehen sollen. – alwaysVBNET

+0

Wenn ich 'UserController.UpdateUser' aufrufen, wird die Datenbank automatisch aktualisiert. Ich habe auch das Snippet in DNN 8 getestet. Es funktioniert auch dort, die DNN 8 db wird ebenfalls aktualisiert. – VDWWD

+0

vielleicht ist meine Tabelle beschädigt? Ist Ihnen irgendetwas bekannt, das diese Änderungen verhindern könnte? – alwaysVBNET

0

Ich glaube, Sie DotNetNuke.Entities.Profile.ProfileController.UpdateUserProfile verwenden müssen().

Versuchen:

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

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

ProfileController.UpdateUserProfile(oProfileUserInfo) 
Verwandte Themen