2009-08-27 110 views
2

我想在ASP.NET MVC网站中使用以下A CAPTCHA Server Control for ASP.NET - by Jeff Atwood。自定义控件似乎并未在提交表单时进行验证。与ASP.NET MVC的ASP.NET CAPTCHA控件示例的问题

有没有人使用ASP.NET MVC对这个示例做过任何工作?

我使用的基本代码如下:

<% using (Html.BeginForm()) { %> 
<CaptchaControl:CaptchaControl ID="CaptchaControl" Name="Security" runat="server"></CaptchaControl:CaptchaControl> 
<input type="submit" value="Send Message" /> 
<% } %> 

回答

1

这不是真的建议使用ASP.Net服务器控件的一个ASP.Net MVC的网站。 ASP.Net MVC不像常规ASP.Net那样执行页面生命周期。服务器控件可能会呈现,但如果它们依赖于ViewState或Postback事件,则它们将不起作用。

看看验证码控制的代码,这似乎是问题所在。验证被编程为在LoadPostBackData期间发生。不幸的是,在ASP.Net MVC中没有回传的概念,因此没有回传数据。

1

我写了一篇关于ASP.NET MVC验证码控件的完整博客文章。也许这是值得看看它,因为它是非常最新:

ASP.NET MVC Captcha Control

+0

偏离主题,您使用的是哪种博客软件,非常干净。我喜欢。 – 2012-09-24 00:29:34

+0

@dustin而不是有效地只发布一个链接,你可以在这里发布摘录内联吗?我们不鼓励仅链接回答。 – slugster 2012-09-24 10:41:33

+0

@Mystere Man:我自己的家酿; – dustinmoris 2012-09-24 11:17:40

0

一个更好的选择是简单地使用reCaptchaMvcExtensions从NuGet包库。这是一个简单的安装和使用包,使用完整的谷歌reCaptcha。