diff --git a/NHSUKViewComponents.Web/ViewComponents/ErrorSummaryViewComponent.cs b/NHSUKViewComponents.Web/ViewComponents/ErrorSummaryViewComponent.cs index 3bde6ee..2fca724 100644 --- a/NHSUKViewComponents.Web/ViewComponents/ErrorSummaryViewComponent.cs +++ b/NHSUKViewComponents.Web/ViewComponents/ErrorSummaryViewComponent.cs @@ -13,9 +13,23 @@ public IViewComponentResult Invoke(string[]? orderOfPropertyNames) .SelectMany(kvp => kvp.Value.Errors.Select(e => new ErrorSummaryListItem(kvp.Key, e.ErrorMessage))) .ToList(); + var groupingMetadata = ViewData["GroupedFormControlMetadata"] as Dictionary; + + foreach (var error in errors) + { + string key = error.Key; + bool isGrouped = groupingMetadata != null && groupingMetadata.ContainsKey(key) && groupingMetadata[key]; + + if (isGrouped) + { + error.Key += "-0"; + } + } + var orderedErrors = GetOrderedErrors(errors, orderOfPropertyNames ?? new string[0]); var errorSummaryViewModel = new ErrorSummaryViewModel(orderedErrors); + return View(errorSummaryViewModel); } diff --git a/NHSUKViewComponents.Web/Views/Shared/Components/RadioList/Default.cshtml b/NHSUKViewComponents.Web/Views/Shared/Components/RadioList/Default.cshtml index eddfb33..c901ebd 100644 --- a/NHSUKViewComponents.Web/Views/Shared/Components/RadioList/Default.cshtml +++ b/NHSUKViewComponents.Web/Views/Shared/Components/RadioList/Default.cshtml @@ -52,7 +52,7 @@ @foreach (var (radio, index) in Model.Radios.Select((r, i) => (r, i))) { counter = index; - var radioId = $"{radio.Value}-{index}"; + var radioId = $"{Model.AspFor}-{index}"; if (!string.IsNullOrWhiteSpace(Model.Class)) {
@@ -106,7 +106,7 @@ @if (Model.OptionalRadio != null) {
or
- var radioId = $"{Model.OptionalRadio.Value}-{++counter}"; + var radioId = $"{Model.AspFor}-{++counter}";