diff --git a/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs b/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs index a79219a4a..29074ab71 100644 --- a/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs +++ b/src/Orchard/ContentManagement/Handlers/TemplateFilterForPart.cs @@ -1,4 +1,5 @@ using System; +using Orchard.Utility.Extensions; namespace Orchard.ContentManagement.Handlers { public class TemplateFilterForPart : TemplateFilterBase where TPart : ContentPart, new() { @@ -35,7 +36,7 @@ namespace Orchard.ContentManagement.Handlers { } protected override void BuildEditorShape(BuildEditorContext context, ContentPart part) { - if (!string.Equals(_groupId, context.GroupId, StringComparison.OrdinalIgnoreCase)) + if (!_groupId.SafeNameEquals(context.GroupId, StringComparison.OrdinalIgnoreCase)) return; var templatePart = part.As(); @@ -44,9 +45,9 @@ namespace Orchard.ContentManagement.Handlers { } protected override void UpdateEditorShape(UpdateEditorContext context, ContentPart part) { - if (!string.Equals(_groupId, context.GroupId, StringComparison.OrdinalIgnoreCase)) + if (!_groupId.SafeNameEquals(context.GroupId, StringComparison.OrdinalIgnoreCase)) return; - + var templatePart = part.As(); context.Updater.TryUpdateModel(templatePart, _prefix, null, null); BuildEditorShape(context, part); diff --git a/src/Orchard/Utility/Extensions/StringExtensions.cs b/src/Orchard/Utility/Extensions/StringExtensions.cs index e8bde90b4..1638a2b8c 100644 --- a/src/Orchard/Utility/Extensions/StringExtensions.cs +++ b/src/Orchard/Utility/Extensions/StringExtensions.cs @@ -190,6 +190,18 @@ namespace Orchard.Utility.Extensions { return name; } + /// + /// Compares two strings after converting them to valid technical names. + /// + public static bool SafeNameEquals(this string name, string otherName) => + name.ToSafeName() == otherName.ToSafeName(); + + /// + /// Compares two strings using a string comparison option after converting them to valid technical names. + /// + public static bool SafeNameEquals(this string name, string otherName, StringComparison comparisonType) => + string.Equals(name.ToSafeName(), otherName.ToSafeName(), comparisonType); + /// /// Generates a valid Html name. ///