2016-08-29 5 views
0

今日私は次の要件を持つ1つの問題に直面しています。メガネの使用中に日付を編集するには

  1. 日付は編集可能である必要があります。

  2. 日付は特定の形式にする必要があります。

マイコードは次のように動作しません。

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

私はアプローチに従うが、 "DateParameters" 名前空間のエラーを投げしようとしています。

また、学習者には次のようなことがありますが、これをどのように達成できますか?

フィールドを編集可能にするには、2つのパラメータが必要です。これは、日付フィールドを編集可能にするために使用されています。最初のパラメータはGlass.Mapperに編集可能にするフィールドを指示し、2番目のパラメータはページがページ編集モードでないときの出力を指定します。これにより、2つの異なるモードでフィールドの出力を制御することができます。

誰かが私を助けることができますか?

答えて

0

あなたがしたいのは、デフォルトのフォーマットを提供することですが、メインのガラスのものと同じものを維持することです。ように:

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

これは、編集時に日付を通常の日付にしますが、最終ページ用にフォーマットすることができます。

+0

:あなたのコードは次のようになりますので、著者は、経験エディタで日付形式を気にしません日付フィールドを編集するだけで済みます 値にnullを設定することはできません。パラメータ名:Glass.Mapper.Sc.GlassHtmlでSitecore.Diagnostics.Assert.ArgumentNotNullでobjectToSwitchTo Sitecore.Common.Switcher'2.Enter(TValue objectToSwitchTo)で(Object引数、文字列argumentName) 。 MakeEditable [T](Expression'1フィールド、Expression'1 standardOutput、Tモデル、オブジェクトパラメータ、コンテキストコンテキスト、データベースデータベース、TextWriterライタ) これに関する助言はありますか? –

+0

それがうまくいかない場合は、モデルが正しく配線されているかどうかチェックします。ここでは、正確な構文を確認しました:http://glass.lu/Mapper/Sc/Tutorials/Tutorial5。あなたのモデルが正しく装飾されていない場合や、それ以外のものがない場合、Glassはツリー内の項目にフィールドを正しくマップする方法を知りません。 –

-1

私もことを試してみましたが、それは

**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)** 

の下のように、この上の任意のヘルプを、エラーを投げていますか?通常のビューのために、あなただけそれが編集可能にすることなく形式で日付を表示する必要があるので、私は、「ノーマルビュー」と「経験エディタ」のために異なるコードを使用し、この場合、通常

0

、および経験エディタ上のあなたは私もあることを試してみましたが、それは以下のようなエラーがスローされ

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> 
    } 
    } 
} 
+0

はい、私たちはそれを行うことができますが、私は単一行のコードで達成したいです。私はガラスのマッパーがそのような機能を提供する必要があると思う。 –

+0

これは、あなたがタイトルフィールドを持っているなら、あなたが日付フィールドを期待している文字列フィールド、ガラスマッパを持っているが、あなたのコードでは、それは文字列であるフォーマットされた日付を提供している。 –

関連する問題