2016-08-29 2 views
0

오늘 다음 요구 사항이있는 한 가지 문제에 직면하고 있습니다.글래스 매퍼를 사용하는 동안 날짜 편집 방법

  1. 날짜는 편집 가능해야합니다.

  2. 날짜는 특정 형식이어야합니다.

내 코드가 작동하지 않는 것과 같습니다.

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

기본 유리 재질에 대해 기본 형식을 제공하지만 내용을 동일하게 유지하려고합니다. 좋아요 :

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.Common.Switcher'2.Enter에서 Sitecore.Diagnostics.Assert.ArgumentNotNull에서 objectToSwitchTo (Object 인수, 문자열 argumentName) (TValue objectToSwitchTo) . 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

당신은 제목 필드에 문자열 필드, 글래스 맵퍼가 당신의 날짜 필드를 기다리고 있지만 코드에 문자열 인 포맷 된 날짜를 제공한다면 이것은 작동 할 것입니다. –

관련 문제