Sitecore 如何在GlassMapper中使NameValueCollection列表可编辑

Sitecore 如何在GlassMapper中使NameValueCollection列表可编辑,sitecore,sitecore8,glass-mapper,Sitecore,Sitecore8,Glass Mapper,我正在尝试使用GlassMapper使NameValueList集合可编辑,但我似乎无法弄清这一点 我们有一个可以附加到字段的验证列表,我希望验证消息可以在ExperienceEditor中编辑 当GlassMapper检索项目时,将预处理集合: Validations=glassItem.GetValidations() @foreach(Model.Validations中的验证) { @Html.Glass().Editable(验证,e=>e.ErrorMessage) } 我得到的

我正在尝试使用GlassMapper使NameValueList集合可编辑,但我似乎无法弄清这一点

我们有一个可以附加到字段的验证列表,我希望验证消息可以在ExperienceEditor中编辑

当GlassMapper检索项目时,将预处理集合:

Validations=glassItem.GetValidations()

@foreach(Model.Validations中的验证)
{
@Html.Glass().Editable(验证,e=>e.ErrorMessage)
}

我得到的错误:

项目解析失败-无法保存不包含表示项目ID的属性的类。请确保至少有一个属性已标记为包含Sitecore ID。类型:MyAssembly.Models.Validation


无法在体验编辑器中直接编辑某些类型的复杂字段,例如树状列表、多重列表或名称值集合

相反,您应该设置并使用。这将弹出一个模式对话框,允许您编辑字段,它不是内联的,但意味着您不需要离开体验编辑器。这是解决此问题的推荐方法

因为您使用的是Glass Mapper,所以您可以直接从代码中声明编辑帧,现在必须首先在
Core
数据库中声明/设置它们

@if (Sitecore.Context.PageMode.IsExperienceEditor)
{
    using (Html.Glass().BeginEditFrame(Model, "Edit", x => x.Validations))
    {
        <div>Edit Validations</div>
    }
}
@if(Sitecore.Context.PageMode.IsExperienceEditor)
{
使用(Html.Glass().BeginEditFrame(模型,“编辑”,x=>x.Validations))
{
编辑验证
}
}
您可能会对我写的关于在编辑框架周围添加包装器以使用户体验更友好的文章感兴趣

@if (Sitecore.Context.PageMode.IsExperienceEditor)
{
    using (Html.Glass().BeginEditFrame(Model, "Edit", x => x.Validations))
    {
        <div>Edit Validations</div>
    }
}