我试图在ASP.NET MVC站点中使用以下A CAPTCHA Server Control for ASP.NET - by Jeff Atwood。提交表单时,自定义控件似乎没有验证。
是否有人使用ASP.NET MVC对此示例进行过任何工作?
我使用的基本代码如下:
<% using (Html.BeginForm()) { %>
<CaptchaControl:CaptchaControl ID="CaptchaControl" Name="Security" runat="server"></CaptchaControl:CaptchaControl>
<input type="submit" value="Send Message" />
<% } %>
答案 0 :(得分:1)
并不是真的建议在ASP.Net MVC站点上使用ASP.Net服务器控件。 ASP.Net MVC不像常规ASP.Net那样执行页面生命周期。服务器控件可以呈现,但如果它们依赖于ViewState或Postback事件,它们将无法工作。
查看Captcha Control的代码,这似乎是个问题。验证编程为在LoadPostBackData期间发生。不幸的是,ASP.Net MVC中没有回发的概念......因此没有回发数据。
答案 1 :(得分:1)
我写了一篇关于ASP.NET MVC验证码控件的完整博客文章。也许它值得一看,因为它是最新的:
答案 2 :(得分:0)
更好的选择是简单地使用NuGet包库中的reCaptchaMvcExtensions。这是一个易于安装和使用的软件包,它使用完整的google reCaptcha。