Как включить кнопку, если рекапча действительна - PullRequest
0 голосов
/ 09 октября 2018

У меня есть контроллер с именем AccountController с recaptcha и кодом, подобным этому:

[HttpPost]
        public ActionResult FormSubmit()
        {

            var response = Request["g-recaptcha-response"];
            string secretKey = "6Lf_NnQUAAA......";  //Added my secret key that genereted on my re-captcha
            var client = new WebClient();
            var result = client.DownloadString(string.Format("https://google.com/recaptcha/api/siteverify?secret={0}&response{1}", secretKey, response));
            var obj = JObject.Parse(result);
            var status = (bool)obj.SelectToken("success");
            ViewBag.Message = status ? "successs" : "failed";

            return View();
        }

Кроме того, у меня есть LogIn.cshtml представление с кодом, подобным этому:

<div>
    @using (Html.BeginForm("FormSubmit", "Home", FormMethod.Post))
    {
        <div class="g-recaptcha" data-sitekey="6Lf_NnQUAAA..."></div> //ADDED MY SITE KEY
        <input type="submit" name="commit" value="Join IoT Lab!">  
    }
</div>
<span style="display:inline-block; font-size:20px;margin:20px 0;padding:20px;border:1px solid #D3D3D3">
    @ViewBag.Message
</span>
<p>
    By clicking "Join IoT Lab", you agree to our <br />
    <a href="@Url.Action("PrivacyRulesAndGuidelines", "IOTLabProject")">Terms and conditions</a> and <a href="@Url.Action("PrivacyRulesAndGuidelines", "IOTLabProject")">Privacy policy</a>
</p>

<script src='https://www.google.com/recaptcha/api.js' type="text/javascript"></script>

В настоящее времякапча с использованием изображений для проверки, поэтому, если я проверю правильные изображения, капча будет действительна, но если я просто нажму на кнопку «Отправить» («Присоединиться к IoT Lab») без капчи, она все равно перенаправит меня ...

Итак, как включить кнопку Join IoT Lab! (commit) после проверки рекапчи?Я имею в виду, как установить recaptcha как обязательное поле?

Полагаю, мне следует использовать что-то вроде ViewBag, но как?

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете проверить состояние viewBag.Message в своей "Присоединиться к IoT Lab!"button.This сообщение включено после отправки формы. Может быть, я понимаю вашу проблему и дать правильное решение. Если у вас есть какие-либо проблемы, пожалуйста, знайте меня.

<div>
@using (Html.BeginForm("FormSubmit", "Home", FormMethod.Post))
{
    <div class="g-recaptcha" data-sitekey="6Lf_NnQUAAA..."></div> //ADDED MY SITE KEY
    <input type="submit" name="commit" value="Join IoT Lab!">  
}
</div>
<span style="display:inline-block; font-size:20px;margin:20px 
0;padding:20px;border:1px solid #D3D3D3">
@ViewBag.Message
</span>
<p>
@if(ViewBag.Message=="successs")
{
  By clicking "Join IoT Lab", you agree to our <br />
  <a href="@Url.Action("PrivacyRulesAndGuidelines", "IOTLabProject")">Terms and 
   conditions</a> and <a href="@Url.Action("PrivacyRulesAndGuidelines", 
   "IOTLabProject")">Privacy policy</a>
}

 </p>

<script src='https://www.google.com/recaptcha/api.js' type="text/javascript"> 
</script>
...