Sitecore 如何在使用玻璃贴图器时使日期可编辑

Sitecore 如何在使用玻璃贴图器时使日期可编辑,sitecore,sitecore-mvc,glass-mapper,sitecore8.1,Sitecore,Sitecore Mvc,Glass Mapper,Sitecore8.1,今天我面临的一个问题有以下要求 日期应该是可编辑的 日期应为特定格式 我的代码如下所示,不起作用 模型中的foreachvar项 { @可编辑项,x=>x.Start\u Date.tostringmmm dd,yyyy } 我尝试了以下方法,但抛出DateParameters命名空间错误 @Editableitem,x=>x.Start\u日期,新日期参数{Format=MMMM-dd,yyyy} 我也有学习者在做以下事情,但我如何才能做到这一点 要使字段可编辑,需要两个参数,这已用于使日期字

今天我面临的一个问题有以下要求

日期应该是可编辑的

日期应为特定格式

我的代码如下所示,不起作用

模型中的foreachvar项 { @可编辑项,x=>x.Start\u Date.tostringmmm dd,yyyy } 我尝试了以下方法,但抛出DateParameters命名空间错误

@Editableitem,x=>x.Start\u日期,新日期参数{Format=MMMM-dd,yyyy} 我也有学习者在做以下事情,但我如何才能做到这一点

要使字段可编辑,需要两个参数,这已用于使日期字段可编辑。第一个参数指示Glass.Mapper将哪个字段设置为可编辑,第二个参数则指定当页面未处于页面编辑模式时输出的内容。这允许您在两种不同模式下控制字段的输出


有人能帮我吗?

您要做的是提供默认格式,但主玻璃的格式保持不变。像这样:

foreach(var item in Model)
{
    <div>@Editable(item,  x => x.Start_Date, x=>x.Start_Date.ToString("MMMM dd,yyyy"))</div>
}

这将使该日期成为编辑时的正常日期,但允许您为最后一页设置格式。

我也尝试过,但它会引发如下错误

**Value cannot be null. Parameter name: objectToSwitchTo

   at Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String argumentName)
   at Sitecore.Common.Switcher2.Enter(TValue objectToSwitchTo)
   at Glass.Mapper.Sc.GlassHtml.MakeEditable[T](Expression1 field, Expression1 standardOutput, T model, Object parameters, Context context, Database database, TextWriter writer)**

这方面有什么帮助吗?

通常在这种情况下,我对普通视图和体验编辑器使用不同的代码,因此,对于普通视图,您只需要使用格式显示日期,而不需要将其设置为可编辑,而在体验编辑器中,您只需要编辑日期字段。作者将不关心使用体验编辑器的日期格式,因此,您的代码如下所示:

模型中的foreachvar项 { { @如果Sitecore.Context.PageMode.IsExperience编辑或编辑 { @可编辑项,x=>x.Start\u日期 } 其他的 { @item.Start\u Date.ToStringMMM dd,yyyy } } }
对于体验编辑器模式,这在razor视图中适用:

@Editablemodel=>model.SomeDateField,新{Format=dd-MM-yyyy}


Sitecore 8.2,Glass 4.4。

我也尝试过,但它抛出了一个错误,如“值不能为空”。参数名称:Sitecore.Diagnostics.Assert.ArgumentNotNullObject参数的objectToSwitchTo,Sitecore.Common.Switcher2.EnterTValue objectToSwitchTo at Glass.Mapper.Sc.GlassHtml.MakeEditable[T]Expression1字段,表达式`1标准输出,T模型,对象参数,上下文,数据库,TextWriter在这方面有什么帮助吗?如果不起作用,我会检查你的模型是否正确连接,等等。我刚刚确认了这里的确切语法:。如果你没有正确地装饰模型或其他类似的东西,Glass将不知道如何正确地将字段映射到树中的项目。是的,我们可以这样做,但我想用单行代码实现。我觉得glass mapper应该提供这样的功能。如果你有标题字段,我指的是字符串字段,glass mapper需要你的日期字段,但在你的代码中,你提供了格式化的日期,这是字符串。