From 9c2e1f9e56ddaad94ba724eac3d79e4b0619610e Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 28 Feb 2015 15:52:37 +0100 Subject: [PATCH] Fixed an issue where unchecked checkboxes would remain checked. The issue was that by combining existing element data with posted element data, the existing items would retain their values in case no such item was posted, which is the case for unchecked checkboxes; their name/value pair will be not posted, so the original value would be retained. This is fixed by no longer combining existing data with hosted data, but instead relying that an element editor will post all data that it is concerned with. --- .../Modules/Orchard.Layouts/Controllers/ElementController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs index 13bda60c3..d0e187bfb 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Controllers/ElementController.cs @@ -104,7 +104,7 @@ namespace Orchard.Layouts.Controllers { var contentType = sessionState.ContentType; var describeContext = CreateDescribeContext(contentId, contentType); var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, model.TypeName); - var data = ElementDataHelper.Deserialize(model.ElementData).Combine(Request.Form.ToDictionary()); + var data = Request.Form.ToDictionary(); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); var context = CreateEditorContext(session, describeContext.Content, element, elementData: data, updater: this); var editorResult = _elementManager.UpdateEditor(context); @@ -190,7 +190,7 @@ namespace Orchard.Layouts.Controllers { var contentType = sessionState.ContentType; var describeContext = CreateDescribeContext(contentId, contentType); var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, model.TypeName); - var data = ElementDataHelper.Deserialize(model.ElementData).Combine(Request.Form.ToDictionary()); + var data = Request.Form.ToDictionary(); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); var context = CreateEditorContext(session, describeContext.Content, element, data, updater: this); var editorResult = _elementManager.UpdateEditor(context);