diff --git a/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs b/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs index 5e53d76a4a..6e7f2f0f76 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs @@ -852,7 +852,9 @@ namespace Microsoft.AspNet.Mvc.Rendering } } - return (IReadOnlyCollection)currentValues; + // HashSet<> implements IReadOnlyCollection<> as of 4.6, but does not for 4.5.1. If the runtime cast succeeds, + // avoid creating a new collection. + return (currentValues as IReadOnlyCollection) ?? currentValues.ToArray(); } internal static string EvalString(ViewContext viewContext, string key, string format)