我有一个包含几个部分的内容类型,其中一个可以添加一个议程,该议程由几个点组成,包括日期、时间、标题和富文本描述。换句话说,一个 1-n 关系。这部分使用视图模型来提交对象列表。用户在提交之前可能已经在议程上花费了一些时间,并且如果任何其他部分未验证,他们当前会丢失议程上的所有工作。这并不意外,因为重新加载页面时会创建一个新的视图模型。
但是我不禁注意到,零件中的任何信息都会保留,我希望有一种方法可以将数据保留在视图模型中。
驱动有以下方法:
protected override DriverResult Editor(AgendaPart part, dynamic shapeHelper)
{
return ContentShape("Parts_Agenda_Edit",
() => shapeHelper.EditorTemplate(
TemplateName: "Parts/Agenda",
Model: BuildEditorViewModel(part),
Prefix: Prefix));
}
protected override DriverResult Editor(AgendaPart part, IUpdateModel updater, dynamic shapeHelper)
{
var model = new AgendaViewModel();
updater.TryUpdateModel(model, Prefix, null, null);
if (part.ContentItem.Id != 0)
{
_agendaService.CreateUpdateAgenda(model, part.ContentItem);
}
return Editor(part, shapeHelper);
}
提交时,我得到这样的视图模型:
var model = new AgendaViewModel();
updater.TryUpdateModel(model, Prefix, null, null);
在加载编辑器以获取任何预先存在的视图模型数据时,有什么“类似”可以做的吗?如果没有,那么任何其他建议也会受到赞赏。