From 600d7be2acd013125f2a457417b7712a055799c4 Mon Sep 17 00:00:00 2001 From: Claus Date: Wed, 10 Aug 2016 13:45:06 +0200 Subject: [PATCH] U4-8567 UmbracoHelper.CreateEncryptedRouteString fails to parse additionalRouteVals when it is of type Dictionary --- src/Umbraco.Web/UmbracoHelper.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web/UmbracoHelper.cs b/src/Umbraco.Web/UmbracoHelper.cs index 495e0a19d3..3c97551eaf 100644 --- a/src/Umbraco.Web/UmbracoHelper.cs +++ b/src/Umbraco.Web/UmbracoHelper.cs @@ -1465,7 +1465,18 @@ namespace Umbraco.Web HttpUtility.UrlEncode(controllerAction), area); - var additionalRouteValsAsQuery = additionalRouteVals != null ? additionalRouteVals.ToDictionary().ToQueryString() : null; + //checking if the additional route values is already a dictionary and convert to querystring + string additionalRouteValsAsQuery; + if (additionalRouteVals != null) + { + var additionalRouteValsAsDictionary = additionalRouteVals as Dictionary; + if (additionalRouteValsAsDictionary != null) + additionalRouteValsAsQuery = additionalRouteValsAsDictionary.ToQueryString(); + else + additionalRouteValsAsQuery = additionalRouteVals.ToDictionary().ToQueryString(); + } + else + additionalRouteValsAsQuery = null; if (additionalRouteValsAsQuery.IsNullOrWhiteSpace() == false) surfaceRouteParams += "&" + additionalRouteValsAsQuery;