今天我面临一个有以下要求的问题。
日期应该是可编辑的。
日期应采用特定格式。
我的代码如下所示无效。
foreach(var item in Model)
{
<div>@Editable(item, x => x.Start_Date.ToString("MMMM dd,yyyy"))</div>
}
我尝试了以下方法,但抛出了“DateParameters”命名空间错误。
@Editable(item, x=> x.Start_Date, new DateParameters { Format = "MMMM dd,yyyy"})
我也有学习者跟随的东西,但我怎么能实现这个目标呢?
要使字段可编辑,需要两个参数,这已用于使“日期”字段可编辑。第一个参数指示Glass.Mapper使哪个字段可编辑,第二个参数指定页面未处于页面编辑模式时输出应该是什么。这允许您在两种不同的模式下控制字段的输出。
有人能帮助我吗?
答案 0 :(得分:0)
你想要做的是提供默认格式,但保持主要玻璃的东西相同。像这样:
foreach(var item in Model)
{
<div>@Editable(item, x => x.Start_Date, x=>x.Start_Date.ToString("MMMM dd,yyyy"))</div>
}
这将使日期成为编辑时的正常日期,但允许您将其格式化为最终页面。
答案 1 :(得分:0)
通常在这种情况下,我使用不同的代码进行&#34; 普通视图&#34;和&#34; 体验编辑器&#34;,因此对于普通视图,您只需要在不使其可编辑的情况下显示日期格式,而在体验编辑器上,您只需要编辑日期字段作者不会关心使用经验编辑器的日期格式,所以你的代码将是这样的:
foreach(var item in Model)
{
{
@if (Sitecore.Context.PageMode.IsExperienceEditorEditing)
{
<div>@Editable(item, x => x.Start_Date)</div>
}
else
{
<div>@item.Start_Date.ToString("MMMM dd,yyyy")</div>
}
}
}
答案 2 :(得分:0)
对于“体验”编辑器模式,这在剃刀视图中对我有效:
@Editable(model => model.SomeDateField, new { Format = "dd-MM-yyyy" })
Sitecore 8.2,带有Glass 4.4。
答案 3 :(得分:-2)
我也试过了,但它会抛出如下错误
**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)**
对此有何帮助?