From 15e1c1d59a31997ea3af2e4beee34c1f3a332516 Mon Sep 17 00:00:00 2001 From: James Kolpack Date: Thu, 16 Jan 2020 11:09:00 -0500 Subject: [PATCH] Fix model validation error display --- WebCms/Controllers/LeafInputController.cs | 7 ++++--- WebCms/Views/LeafInput/Create.cshtml | 3 ++- WebCms/Views/Shared/_ValidationField.cshtml | 11 ++++------- WebCms/scripts/LeafInputCreate.js | 3 ++- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/WebCms/Controllers/LeafInputController.cs b/WebCms/Controllers/LeafInputController.cs index 4c2e2c4..da18857 100644 --- a/WebCms/Controllers/LeafInputController.cs +++ b/WebCms/Controllers/LeafInputController.cs @@ -34,9 +34,10 @@ namespace LeafWeb.WebCms.Controllers if (!files.Any()) ModelState.AddModelError("Files", "Must select at least one file"); - // TODO: this keeps randomly not being mapable because string->bool binding fails. WHY - if (ModelState.ContainsKey("TermsOfService")) - ModelState["TermsOfService"].Errors.Clear(); + if (ModelState.ContainsKey("TermsOfService")) + { + ModelState.Remove("TermsOfService"); + } var membershipHelper = new Umbraco.Web.Security.MembershipHelper(UmbracoContext.Current); var member = membershipHelper.GetCurrentMember(); diff --git a/WebCms/Views/LeafInput/Create.cshtml b/WebCms/Views/LeafInput/Create.cshtml index 59ba415..d4bb61f 100644 --- a/WebCms/Views/LeafInput/Create.cshtml +++ b/WebCms/Views/LeafInput/Create.cshtml @@ -22,6 +22,7 @@

Files

+ @Html.Partial("_ValidationField", "Files")
@@ -56,12 +57,12 @@ @*
 
*@
- @Html.Partial("_ValidationField", "Files")
+ @using (Html.BeginUmbracoForm("Submit", null, new { id = "create" })) { diff --git a/WebCms/Views/Shared/_ValidationField.cshtml b/WebCms/Views/Shared/_ValidationField.cshtml index ebed0f3..9033bfd 100644 --- a/WebCms/Views/Shared/_ValidationField.cshtml +++ b/WebCms/Views/Shared/_ValidationField.cshtml @@ -1,12 +1,9 @@ @model string @{ var fieldName = Model; + var modelState = ViewData.ModelState[fieldName]; } -@if (ViewData.ModelState[fieldName] != null - && ViewData.ModelState[fieldName].Errors.Any()) +@foreach (var error in modelState?.Errors ?? new ModelErrorCollection()) { - foreach (var error in ViewData.ModelState[fieldName].Errors) - { -
@error.ErrorMessage
- } -} \ No newline at end of file +
@error.ErrorMessage
+} diff --git a/WebCms/scripts/LeafInputCreate.js b/WebCms/scripts/LeafInputCreate.js index 0f428f2..54d670b 100644 --- a/WebCms/scripts/LeafInputCreate.js +++ b/WebCms/scripts/LeafInputCreate.js @@ -11,7 +11,8 @@ "Confirm": function () { $("#confirmCreate") .next(".ui-dialog-buttonpane button:contains('Confirm')") - .attr("disabled", true); + .attr("disabled", true) + .addClass("ui-state-disabled"); form.submit(); }, "Cancel": function () {