0
오차 필드에 하나의 필드 (GUID) 만 포함하는 사용자 정의 필드를 만들었습니다. 따라서 컨텐트 유형에 추가 될 때마다 "편집자"템플리트에 새 GUID가 표시됩니다. 이 형식은 콘텐츠 형식이 포함 된 양식을 제출할 때를 제외하고 양식이 다른 GUID로 게시됩니다. 면밀히 살펴보면 편집기 (POST) 필드의 드라이버가 필드의 viewModel을 업데이트하지 않는다는 것을 알았습니다.오차드 사용자 정의 필드가 올바르게 게시되지 않음
디버깅을위한 제안 사항이나 요령이 있으십니까? 여기
내 코드protected override DriverResult Display(
ContentPart part, Fields.UniqueIDField field,
string displayType, dynamic shapeHelper)
{
return ContentShape("Fields_String", // this is just a key in the Shape Table
GetDifferentiator(field, part),
() =>
{
var settings = field.PartFieldDefinition.Settings.GetModel<UniqueIdFieldSettings>();
var value = field.Id;
var viewModel = new UniqueIdFieldViewModel
{
Id = value
};
return shapeHelper.Fields_String(// this is the actual Shape which will be resolved (Fields/DateTime.cshtml)
Model: viewModel);
}
);
}
protected override DriverResult Editor(ContentPart part,
Fields.UniqueIDField field,
dynamic shapeHelper)
{
var settings = field.PartFieldDefinition.Settings
.GetModel<UniqueIdFieldSettings>();
var value = Guid.NewGuid().ToString();
field.Id = value;
var viewModel = new UniqueIdFieldViewModel
{
Id = value,
};
return ContentShape("Fields_String_Edit",
() => shapeHelper.EditorTemplate(
TemplateName: TemplateName,
Model: viewModel,
Prefix: GetPrefix(field, part)));
}
protected override DriverResult Editor(ContentPart part,
Fields.UniqueIDField field,
IUpdateModel updater,
dynamic shapeHelper)
{
var viewModel = new UniqueIdFieldViewModel();
if (updater.TryUpdateModel(viewModel,
GetPrefix(field, part), null, null))
{
field.Id = viewModel.Id;
}
return Editor(part, field, shapeHelper);
}
하지만 편집기 메서드에서 매번 * 값을 재설정하고 있습니다. –
Editor-GET 메서드에서 새 GUID를 얻고 Editor-POST에서 모델을 업데이트하고 있습니다. 나에게 옳은 길을 제안 해 줄 수 있니? – Subhasis
필드의 편집 템플리트를 확인하십시오. – mberacochea