diff --git a/src/Microsoft.AspNet.Mvc.TagHelpers/SelectTagHelper.cs b/src/Microsoft.AspNet.Mvc.TagHelpers/SelectTagHelper.cs index 6a6acc50b2..d3ecbd7034 100644 --- a/src/Microsoft.AspNet.Mvc.TagHelpers/SelectTagHelper.cs +++ b/src/Microsoft.AspNet.Mvc.TagHelpers/SelectTagHelper.cs @@ -18,6 +18,16 @@ namespace Microsoft.AspNet.Mvc.TagHelpers [ContentBehavior(ContentBehavior.Append)] public class SelectTagHelper : TagHelper { + /// + /// Key used for selected values in . + /// + /// + /// Value for this dictionary entry will either be null (indicating no has + /// executed within this <form/>) or an instance. Elements of the + /// collection are based on current . + /// + public static readonly string SelectedValuesFormDataKey = nameof(SelectTagHelper) + "-SelectedValues"; + // Protected to ensure subclasses are correctly activated. Internal for ease of use when testing. [Activate] protected internal IHtmlGenerator Generator { get; set; } @@ -114,6 +124,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers // Ensure GenerateSelect() _never_ looks anything up in ViewData. var items = Items ?? Enumerable.Empty(); + ICollection selectedValues; var tagBuilder = Generator.GenerateSelect( ViewContext, For.Metadata, @@ -121,13 +132,18 @@ namespace Microsoft.AspNet.Mvc.TagHelpers name: For.Name, selectList: items, allowMultiple: allowMultiple, - htmlAttributes: null); + htmlAttributes: null, + selectedValues: out selectedValues); if (tagBuilder != null) { output.SelfClosing = false; output.Merge(tagBuilder); } + + // Whether or not (not being highly unlikely) we generate anything, could update contained