From 9ca4e3246277ff43ee88aeef9436ae935a992ca2 Mon Sep 17 00:00:00 2001 From: yekalkan Date: Fri, 27 Apr 2018 17:45:56 +0300 Subject: [PATCH] Form tag helper (in proggress) --- .../Form/AbpDynamicformTagHelper.cs | 16 ++++++++++ .../Form/AbpDynamicformTagHelperService.cs | 32 +++++++++++++++++++ .../Form/AbpFormGroupTagHelperService.cs | 10 ------ .../Pages/Components/Forms.cshtml | 13 ++++++++ .../Pages/Components/Forms.cshtml.cs | 19 +++++++++++ 5 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs new file mode 100644 index 0000000000..e09daf87a1 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs @@ -0,0 +1,16 @@ +using JetBrains.Annotations; +using Microsoft.AspNetCore.Mvc.ViewFeatures; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +{ + public class AbpDynamicFormTagHelper : AbpTagHelper + { + public ModelExpression Model { get; set; } + + public AbpDynamicFormTagHelper(AbpDynamicFormTagHelperService tagHelperService) + : base(tagHelperService) + { + + } + } +} diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs new file mode 100644 index 0000000000..584f342abc --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +{ + public class AbpDynamicFormTagHelperService : AbpTagHelperService + { + private readonly HtmlEncoder _htmlEncoder; + private readonly AbpInputTagHelper _abpInputTagHelper; + private readonly AbpSelectTagHelper _abpSelectTagHelper; + + public AbpDynamicFormTagHelperService(HtmlEncoder htmlEncoder, AbpInputTagHelper abpInputTagHelper, AbpSelectTagHelper abpSelectTagHelper) + { + _htmlEncoder = htmlEncoder; + _abpInputTagHelper = abpInputTagHelper; + _abpSelectTagHelper = abpSelectTagHelper; + } + + public override void Process(TagHelperContext context, TagHelperOutput output) + { + var model = TagHelper.Model; + + } + + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs index fed6ccb684..96b176f994 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs @@ -28,16 +28,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form { output.Attributes.AddClass("form-check"); } - - - //var attributes = new TagHelperAttributeList - //{ - // {"Type", "Text"}, - // {"Placeholder", "plcHlder"} - //}; - - //output.Content.AppendHtml(RenderTagHelper(attributes, _abpInputTagHelper, _htmlEncoder)); - } } diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml index 4db1d3782a..e8bd5cdaf7 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml @@ -11,6 +11,19 @@

# Example

+
+
+ + + +
+
+
       
+        <abp-dynamic-form model="Model.Person" >
+        </form>
+        
+
+
diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml.cs b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml.cs index 675f4a5839..713619eb1e 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml.cs +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml.cs @@ -42,6 +42,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components [DisplayName("City")] public Cities City { get; set; } + public Person Person { get; set; } + public List Countries { get; } = new List { new SelectListItem { Value = "MX", Text = "Mexico" }, @@ -63,4 +65,21 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components NewJersey, Moscow } + + public class Person + { + public string Name { get; set; } + + public int Age { get; set; } + + public Cities City { get; set; } + + public Phone Phone { get; set; } + } + + public class Phone + { + public string Number { get; set; } + public string Name { get; set; } + } } \ No newline at end of file