我遇到一个问题,其中字符串的值 - 存储在单行文本字段中 - 被返回为前截断为前255个字符。当我查看内容编辑器时,我看到多余的字符。如果我使用Sitecore Rocks查询数据库,我会看到额外的字符。
这可能是由GlassMapper引起的吗?
在下面的代码示例中,正在截断的是LinkText。
我的模特......
using Glass.Mapper.Sc.Configuration.Attributes;
using Glass.Mapper.Sc.Fields;
using MySite.Extensions;
using MySite.Models.Base;
using Sitecore.Data.Items;
using System;
namespace MySite.Models.Items
{
[SitecoreType]
public class LinkItem : ISitecoreBase, ILinkItemBase
{
// ISitecoreBase
public virtual Guid Id { get; set; }
public virtual string Path { get; set; }
public virtual Item InnerItem { get; set; }
// ILinkItemBase
public virtual string LinkText { get; set; }
public virtual Link LinkTarget { get; set; }
/// <summary>
/// Does the link have neccessary content?
/// </summary>
/// <returns></returns>
public bool IsValid()
{
return this.LinkText.HasValue();
}
}
}
using Glass.Mapper.Sc.Configuration.Attributes;
using Glass.Mapper.Sc.Fields;
using MySite.Extensions;
namespace MySite.Models.Base
{
[SitecoreType(TemplateId = Constants.TemplateIds.LINK_ITEM_BASE)]
public interface ILinkItemBase
{
[SitecoreField(Constants.LinkItemBase.LINK_TEXT)]
string LinkText { get; }
[SitecoreField(Constants.LinkItemBase.LINK_TARGET)]
Link LinkTarget { get; }
}
}
逻辑片段...... GetLinkItems的第3行,this.LinkItems中项目的LinkText已经显示为截断。
public virtual IEnumerable<LinkItem> LinkItems { get; set; }
public ICollection<LinkItem> GetLinkItems()
{
ICollection<LinkItem> linkItemCollection = new List<LinkItem>();
if (this.LinkItems.HasItems())
{
foreach (LinkItem LinkItem in this.LinkItems)
{
if (LinkItem.IsValid())
{
linkItemCollection.Add(LinkItem);
}
}
}
return linkItemCollection;
}