我正在使用Sitecore.Analytics.Tracker
在我的网站上进行个性化。我已经为用户添加了手动更改他们的邮政编码的能力,这会改变他们在网站的某些部分看到的内容。使用Tracker.CurrentVisit.PostalCode
检索邮政编码
public string GetCurrentZipCode()
{
return Tracker.CurrentVisit.PostalCode.IsNotNullOrEmpty() ? Tracker.CurrentVisit.PostalCode : String.Empty;
}
public void SetCurrentZipCode(string zip)
{
Tracker.CurrentVisit.PostalCode = zip;
}
这是可行的,但很麻烦;每当我重新加载页面时,邮政编码都会变回默认值,我发现这是因为有时页面加载时,PostalCode会变回空字符串。
为什么Tracker.CurrentVisit.PostalCode
会被重置?这是Sitecore中的设置吗?我怎么才能阻止它呢?理想情况下,PostalCode的值应该在整个会话期间保持不变。
发布于 2016-05-06 01:00:51
联系人有一个可用于存储此信息的地址集合。
Sitecore.Analytics.Model.config:
<facets>
<facet name="Addresses" contract="Sitecore.Analytics.Model.Entities.IContactAddresses, Sitecore.Analytics.Model" />
</facets>
有关这些接口的详细信息,请参阅IContactAddresses和IAddress。IContactAddresses有一个Entries集合,它是IAddress对象的列表。
访问当前联系人的地址信息:
private IContactAddresses _addressInfo;
protected IContactAddresses AddressInfo
{
get
{
return _addressInfo ?? (_addressInfo = Tracker.Current.Contact.GetFacet<IContactAddresses>("Addresses"));
}
}
您可以获取表示当前联系地址信息的该对象,并更新各种属性以将该数据保存在内存中,直到用户会话结束。此时,数据将被写回xDB,以便您以后可以将其取回。
https://stackoverflow.com/questions/37055869
复制相似问题