I have a ContentItem "Entry" which consists (among others) of two ContentParts: EntryPart and GalleryPart.
I would like to edit them in separate forms on separate pages. How would I go about doing this?
I thought I could do it via the placement.info file:
The two edit GET actions both construct the shape like this:
var model = _contentManager.BuildEditor(entry);
return View("Edit", (object) model);
Both return the same View, which just calls Display() to display the shape.
The two edit POST actions both save the information like this:
var entry = _contentManager.Get(id, VersionOptions.DraftRequired);
var model = _contentManager.UpdateEditor(entry, this);
In the Placement.info file I set which ContentPart edit shapes should be displayed in which action:
<Place Parts_Entry_Edit="Content:3" />
<Place Parts_Gallery_Edit="Content:3" />
<Place Parts_Entry_Edit="-" />
In the GET actions it works as expected: On action "editpictures" only the GalleryPart-Edit-View is displayed, not the EntryPart-Edit-View. On all other actions the EntryPart-Edit-View is diplayed, not the GalleryPart-Edit-View.
In the POST actions it only works partially: When the EntryPart-Edit-View is submitted its information is saved correctly. But when the GalleryPart-Edit-View is submitted its changes are not saved. During the POST of the "/manage/entries/editpictures/*"
action it seems like Orchard (DefaultContentDisplay) somehow does not match the path with that of the Placement.info file, and therefore creates a shape of the ContentItem "Entry" without the GalleryPart, and then cannot write the new information
into the GalleryPart.
Question: Why does the BuildEditor method match the path in the Placement.info but the UpdateEditor doesn't?
(I am using Orchard 1.7. I am also open to different approaches to separating the edit forms of the two ContentParts of one ContentItem.)