2

我正在尝试使用以下A CAPTCHA Server Control for ASP.NET - 由 Jeff Atwood在 ASP.NET MVC 站点中编写。提交表单时,自定义控件似乎没有进行验证。

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

我使用的基本代码如下:

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

3 回答 3

1

不建议对 ASP.Net MVC 站点使用 ASP.Net 服务器控件。ASP.Net MVC 不像常规 ASP.Net 那样执行页面生命周期。服务器控件可能会呈现,但如果它们依赖于 ViewState 或 Postback 事件,它们将无法工作。

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

于 2009-08-27T05:03:29.480 回答
1

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

ASP.NET MVC 验证码控件

于 2012-09-24T00:07:17.340 回答
0

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

于 2012-09-24T01:32:26.250 回答