diff --git a/src/Microsoft.AspNet.Mvc.TagHelpers/CacheTagHelper.cs b/src/Microsoft.AspNet.Mvc.TagHelpers/CacheTagHelper.cs index 832bb21ec4..84d8a56395 100644 --- a/src/Microsoft.AspNet.Mvc.TagHelpers/CacheTagHelper.cs +++ b/src/Microsoft.AspNet.Mvc.TagHelpers/CacheTagHelper.cs @@ -271,6 +271,40 @@ namespace Microsoft.AspNet.Mvc.TagHelpers } } + private static void AddStringCollectionKey( + StringBuilder builder, + string keyName, + string value, + IHeaderDictionary sourceCollection) + { + if (!string.IsNullOrEmpty(value)) + { + // keyName(param1=value1|param2=value2) + builder.Append(CacheKeyTokenSeparator) + .Append(keyName) + .Append("("); + + var tokenFound = false; + foreach (var item in Tokenize(value)) + { + tokenFound = true; + + builder.Append(item) + .Append(CacheKeyTokenSeparator) + .Append(sourceCollection[item]) + .Append(CacheKeyTokenSeparator); + } + + if (tokenFound) + { + // Remove the trailing separator + builder.Length -= CacheKeyTokenSeparator.Length; + } + + builder.Append(")"); + } + } + private void AddVaryByRouteKey(StringBuilder builder) { var tokenFound = false;