diff --git a/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs b/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs
index 0e7e9f3361..794710399c 100644
--- a/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs
+++ b/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/DefaultHtmlGenerator.cs
@@ -357,7 +357,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
}
///
- public virtual TagBuilder GenerateSelect(
+ public TagBuilder GenerateSelect(
[NotNull] ViewContext viewContext,
ModelMetadata metadata,
string optionLabel,
@@ -365,6 +365,29 @@ namespace Microsoft.AspNet.Mvc.Rendering
IEnumerable selectList,
bool allowMultiple,
object htmlAttributes)
+ {
+ ICollection ignored;
+ return GenerateSelect(
+ viewContext,
+ metadata,
+ optionLabel,
+ name,
+ selectList,
+ allowMultiple,
+ htmlAttributes,
+ selectedValues: out ignored);
+ }
+
+ ///
+ public virtual TagBuilder GenerateSelect(
+ [NotNull] ViewContext viewContext,
+ ModelMetadata metadata,
+ string optionLabel,
+ string name,
+ IEnumerable selectList,
+ bool allowMultiple,
+ object htmlAttributes,
+ out ICollection selectedValues)
{
var fullName = GetFullHtmlFieldName(viewContext, name);
if (string.IsNullOrEmpty(fullName))
@@ -407,7 +430,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
if (defaultValue != null)
{
- selectList = UpdateSelectListItemsWithDefaultValue(selectList, defaultValue, allowMultiple);
+ selectList = UpdateSelectListItemsWithDefaultValue(selectList, defaultValue, allowMultiple, out selectedValues);
+ }
+ else
+ {
+ selectedValues = new string[0];
}
// Convert each ListItem to an