使用ASP.NET MVC的ASP.NET CAPTCHA控件示例出现问题

时间:2009-08-27 04:48:30

标签: .net asp.net-mvc captcha

我试图在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" />
<% } %>

3 个答案:

答案 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验证码控件的完整博客文章。也许它值得一看,因为它是最新的:

ASP.NET MVC Captcha Control

答案 2 :(得分:0)

更好的选择是简单地使用NuGet包库中的reCaptchaMvcExtensions。这是一个易于安装和使用的软件包,它使用完整的google reCaptcha。