From 11c5929155aed424360467528de81fe231e1666e Mon Sep 17 00:00:00 2001 From: akdalin Date: Mon, 2 Jun 2025 09:25:13 +0100 Subject: [PATCH] Create Fieldset View, ViewComponent and Model --- .../ViewComponents/FieldsetViewComponent.cs | 18 ++++++++++++ .../ViewModels/FieldsetViewModel.cs | 29 +++++++++++++++++++ .../Shared/Components/Fieldset/Default.cshtml | 18 ++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 DotnetViewComponents/ViewComponents/FieldsetViewComponent.cs create mode 100644 DotnetViewComponents/ViewModels/FieldsetViewModel.cs create mode 100644 DotnetViewComponents/Views/Shared/Components/Fieldset/Default.cshtml diff --git a/DotnetViewComponents/ViewComponents/FieldsetViewComponent.cs b/DotnetViewComponents/ViewComponents/FieldsetViewComponent.cs new file mode 100644 index 0000000000..e2a4887901 --- /dev/null +++ b/DotnetViewComponents/ViewComponents/FieldsetViewComponent.cs @@ -0,0 +1,18 @@ +namespace DotnetViewComponents.ViewComponents +{ + using System.Collections.Generic; + using Microsoft.AspNetCore.Mvc; + using DotnetViewComponents.ViewModels; + + public class FieldsetViewComponent : ViewComponent + { + public IViewComponentResult Invoke( + string title, + List fieldList) + { + var model = new FieldsetViewModel(title, fieldList); + + return View(model); + } + } +} diff --git a/DotnetViewComponents/ViewModels/FieldsetViewModel.cs b/DotnetViewComponents/ViewModels/FieldsetViewModel.cs new file mode 100644 index 0000000000..9bb5dd3ac1 --- /dev/null +++ b/DotnetViewComponents/ViewModels/FieldsetViewModel.cs @@ -0,0 +1,29 @@ +using Microsoft.AspNetCore.Html; + +namespace DotnetViewComponents.ViewModels +{ + public class FieldsetViewModel + { + public FieldsetViewModel( + string title, + List fieldList) + { + Title = title; + FieldList = fieldList; + } + + public string Title { get; set; } + public List FieldList { get; set; } + + } + + public class FieldViewModel + { + public FieldViewModel(Func content) + { + Content = content; + } + + public Func Content { get; set; } + } +} diff --git a/DotnetViewComponents/Views/Shared/Components/Fieldset/Default.cshtml b/DotnetViewComponents/Views/Shared/Components/Fieldset/Default.cshtml new file mode 100644 index 0000000000..cfbd299cca --- /dev/null +++ b/DotnetViewComponents/Views/Shared/Components/Fieldset/Default.cshtml @@ -0,0 +1,18 @@ +@using DotnetViewComponents.ViewModels +@model FieldsetViewModel + +
+
+ +

+ @Model.Title +

+
+ + @foreach (var field in Model.FieldList) + { + @field.Content(null) + } + +
+