public override void Process(TagHelperContext context, TagHelperOutput output) { context.ThrowIfNull(); output.ThrowIfNull(); var kvList = Data.GetKeyValueList(); var selectListItems = kvList.Select(a => new SelectListItem { Text = a.Key, Value = a.Value.ToString(), Selected = a.Value == (int)(For.Model ?? -1) }).ToList(); if (!DefaultText.IsNullOrEmpty()) { selectListItems.Insert(0, new SelectListItem { Text = DefaultText, Value = "" }); } var tagBuilder = _generator.GenerateSelect(ViewContext, For.ModelExplorer, null, For.Name, selectListItems, null, false, null); output.Content.AppendHtml(tagBuilder); output.TagName = "div"; output.TagMode = TagMode.StartTagAndEndTag; output.Attributes.Add("class", InputDisplay.GetDisplayName()); var idStr = NameAndIdProvider.CreateSanitizedId(ViewContext, For.Name, _generator.IdAttributeDotReplacement); if (Data == null && !Url.IsNullOrEmpty()) { output.PostElement.SetHtmlContent(string.Format(@"<script type='text/javascript'> $(function () {{ $('#{0}').bindSelectData('{1}','{2}'); }}); </script>", idStr, Url, For.Model)); } }