Browse Source

Fix DynamicForm TagHelper

pull/18160/head
liangshiwei 3 years ago
parent
commit
7a64fb8981
  1. 8
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

8
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

@ -26,6 +26,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
private readonly IHtmlGenerator _htmlGenerator; private readonly IHtmlGenerator _htmlGenerator;
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
private readonly IStringLocalizer<AbpUiResource> _localizer; private readonly IStringLocalizer<AbpUiResource> _localizer;
private List<ModelExpression> _models = new();
public AbpDynamicFormTagHelperService( public AbpDynamicFormTagHelperService(
HtmlEncoder htmlEncoder, HtmlEncoder htmlEncoder,
@ -41,6 +42,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{ {
_models = GetModels(context, output);
var list = InitilizeFormGroupContentsContext(context, output); var list = InitilizeFormGroupContentsContext(context, output);
NormalizeTagMode(context, output); NormalizeTagMode(context, output);
@ -157,9 +159,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
protected virtual async Task ProcessFieldsAsync(TagHelperContext context, TagHelperOutput output) protected virtual async Task ProcessFieldsAsync(TagHelperContext context, TagHelperOutput output)
{ {
var models = GetModels(context, output); foreach (var model in _models)
foreach (var model in models)
{ {
if (IsSelectGroup(context, model)) if (IsSelectGroup(context, model))
{ {
@ -225,7 +225,7 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer? otherModel) private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer? otherModel)
{ {
otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute<DateRangePickerAttribute>()?.PickerId == pickerId); otherModel = _models.Select(x => x.ModelExplorer).SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute<DateRangePickerAttribute>()?.PickerId == pickerId);
return otherModel != null; return otherModel != null;
} }

Loading…
Cancel
Save