Select tag helper refactoring

pull/301/head
yekalkan 7 years ago
parent 20398b4853
commit 5fb3840550

@ -152,10 +152,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
{
return IsRadioGroup(model.ModelExplorer) ?
GetAbpRadioInputTagHelper(model) :
GetSelectGroupTagHelper(model);
GetSelectTagHelper(model);
}
private AbpTagHelper GetSelectGroupTagHelper(ModelExpression model)
private AbpTagHelper GetSelectTagHelper(ModelExpression model)
{
var abpSelectTagHelper = _serviceProvider.GetRequiredService<AbpSelectTagHelper>();
abpSelectTagHelper.AspFor = model;

@ -93,12 +93,12 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
protected virtual string GetLabelAsHtml(TagHelperContext context, TagHelperOutput output, TagHelperOutput selectTag)
{
if (string.IsNullOrEmpty(TagHelper.Label))
if (!string.IsNullOrEmpty(TagHelper.Label))
{
return GetLabelAsHtmlUsingTagHelper(context, output);
return "<label " + GetIdAttributeAsString(selectTag) + ">" + TagHelper.Label + "</label>";
}
return "<label " + GetIdAttributeAsString(selectTag) + ">" + TagHelper.Label + "</label>";
return GetLabelAsHtmlUsingTagHelper(context, output);
}
protected virtual bool GetSelectItemsIfProvidedByEnum(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer, out List<SelectListItem> selectItems)
@ -118,10 +118,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
protected virtual void SetSelectedValue(TagHelperContext context, TagHelperOutput output, List<SelectListItem> selectItems)
{
var selectedValue = GetSelectedValue(context, output);
if (!selectItems.Any(si => si.Selected))
{
var selectedValue = GetSelectedValue(context, output);
var itemToBeSelected = selectItems.FirstOrDefault(si => si.Value.ToString() == selectedValue);
if (itemToBeSelected != null)
@ -133,20 +133,21 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
protected virtual string GetSelectedValue(TagHelperContext context, TagHelperOutput output)
{
if (TagHelper.AspFor.ModelExplorer.Metadata.IsEnum)
var modelExplorer = TagHelper.AspFor.ModelExplorer;
if (modelExplorer.Metadata.IsEnum)
{
var baseType = TagHelper.AspFor.ModelExplorer.Model?.GetType().GetEnumUnderlyingType();
var baseType = modelExplorer.Model?.GetType().GetEnumUnderlyingType();
if (baseType == null)
{
return null;
}
if (baseType == null) { return null; }
var valueAsString = Convert.ChangeType(TagHelper.AspFor.ModelExplorer.Model, baseType);
return valueAsString != null ? valueAsString.ToString() : "";
var value = Convert.ChangeType(modelExplorer.Model, baseType);
return value != null ? value.ToString() : "";
}
else
{
return modelExplorer.Model?.ToString();
}
return TagHelper.AspFor.ModelExplorer.Model?.ToString();
}
protected virtual string GetLabelAsHtmlUsingTagHelper(TagHelperContext context, TagHelperOutput output)
@ -156,7 +157,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
For = TagHelper.AspFor,
ViewContext = TagHelper.ViewContext
};
return RenderTagHelper(new TagHelperAttributeList(), context, labelTagHelper, _encoder, "span", TagMode.StartTagAndEndTag, true);
}
}

Loading…
Cancel
Save