From e9d17d3b9f8b1d7654cc8d3cb3cb1d9ad7dfdaaa Mon Sep 17 00:00:00 2001 From: kiasyn Date: Tue, 14 Mar 2023 02:37:51 +1300 Subject: [PATCH] Fix ViewContext.FormContext not being set during BeginUmbracoForm (#13914) * Fix ViewContext.FormContext not being set during BeginUmbracoForm Client validation is broken without this if there are multiple forms with the same field names on a page. * Tweaked comment (cherry picked from commit 62b49c7ea7cc61e3eba1f1fb03dd52985c886a29) --- .../Extensions/HtmlHelperRenderExtensions.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Umbraco.Web.Website/Extensions/HtmlHelperRenderExtensions.cs b/src/Umbraco.Web.Website/Extensions/HtmlHelperRenderExtensions.cs index 2e44bae31f..7823a7c50c 100644 --- a/src/Umbraco.Web.Website/Extensions/HtmlHelperRenderExtensions.cs +++ b/src/Umbraco.Web.Website/Extensions/HtmlHelperRenderExtensions.cs @@ -767,6 +767,12 @@ public static class HtmlHelperRenderExtensions nameof(controllerName)); } + // Create a new form context in order to ensure client validation is set properly when adding multiple forms in a page. More context in PR #13914. + html.ViewContext.FormContext = new FormContext + { + CanRenderAtEndOfForm = true + }; + IUmbracoContextAccessor umbracoContextAccessor = GetRequiredService(html); IUmbracoContext umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); var formAction = umbracoContext.OriginalRequestUrl.PathAndQuery;