diff --git a/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs b/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs index 2979bee..6dc2fe0 100644 --- a/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs +++ b/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs @@ -25,6 +25,24 @@ public IActionResult Index(TestEmailNewsletterViewModel viewModel) return View(); } + [HttpGet] + public IActionResult Localization() + { + return View(); + } + + [ValidateRecaptcha] + [HttpPost] + public IActionResult Localization(TestEmailNewsletterViewModel viewModel) + { + if (ModelState.IsValid) + { + return RedirectToAction(nameof(ThankYou), new { name = viewModel.Name }); + } + + return View(); + } + [HttpGet] public IActionResult DarkTheme() { diff --git a/sample/TestWebApp/Views/Shared/_Layout.cshtml b/sample/TestWebApp/Views/Shared/_Layout.cshtml index 759623c..5bc9aa9 100644 --- a/sample/TestWebApp/Views/Shared/_Layout.cshtml +++ b/sample/TestWebApp/Views/Shared/_Layout.cshtml @@ -26,7 +26,8 @@
  • Dark theme
  • Compact size
  • Audio type
  • -
  • Jqyery validation disabled
  • +
  • Message localization
  • +
  • Jquery validation disabled
  • diff --git a/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml b/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml new file mode 100644 index 0000000..accbbfe --- /dev/null +++ b/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml @@ -0,0 +1,41 @@ +@{ + ViewBag.Title = "Signup for our awesome newsletter"; +} +@model TestEmailNewsletterViewModel +@using PaulMiami.AspNetCore.Mvc.Recaptcha + + +
    +

    @ViewBag.Title

    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    + +@section Scripts { + +} diff --git a/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs b/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs index c537b10..098cb25 100644 --- a/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs +++ b/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs @@ -20,6 +20,7 @@ public class RecaptchaScriptTagHelper : TagHelper private const string JqueryValidationAttributeName = "jquery-validation"; private const string ValidationMessageElementIdAttributeName = "validation-message-element-id"; + private const string ValidationMessageAttributeName = "validation-message"; public RecaptchaScriptTagHelper(IRecaptchaConfigurationService service, IHttpContextAccessor contextAccessor) { @@ -36,6 +37,9 @@ public RecaptchaScriptTagHelper(IRecaptchaConfigurationService service, IHttpCon [HtmlAttributeName(ValidationMessageElementIdAttributeName)] public string ValidationMessageElementId { get; set; } + [HtmlAttributeName(ValidationMessageAttributeName)] + public string ValidationMessage { get; set; } + public override void Process(TagHelperContext context, TagHelperOutput output) { if (!_service.Enabled) @@ -63,7 +67,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) var script = new TagBuilder("script"); script.TagRenderMode = TagRenderMode.Normal; script.InnerHtml.AppendHtml(string.Format(_scriptSnippet, - RecaptchaTagHelper.RecaptchaValidationJSCallBack, ValidationMessageElementId, _service.ValidationMessage)); + RecaptchaTagHelper.RecaptchaValidationJSCallBack, ValidationMessageElementId, ValidationMessage ?? _service.ValidationMessage)); output.PostElement.AppendHtml(script); }