2009-08-27 3 views
2

Я пытаюсь использовать следующие A CAPTCHA Server Control for ASP.NET - by Jeff Atwood на сайте ASP.NET MVC. Пользовательский элемент управления, похоже, не проверяет, когда форма отправлена.Проблема с ASP.NET CAPTCHA Образец управления с 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" /> 
<% } %> 

ответ

1

Это на самом деле не рекомендуется использовать серверные элементы управления ASP.Net для сайта ASP.Net MVC. ASP.Net MVC не выполняет жизненный цикл страницы, как это делает обычный ASP.Net. Элементы управления сервером могут отображаться, но если они полагаются на события ViewState или Postback, они не будут работать.

Рассматривая код для Captcha Control, это, кажется, проблема. Проверка выполняется в процессе загрузки LoadPostBackData. К сожалению, нет концепции обратной передачи в ASP.Net MVC ... и, следовательно, нет данных обратной передачи.

1

Я написал полное сообщение в блоге об элементе управления ASP.NET MVC captcha. Может быть, это стоит того, чтобы взглянуть на него, так как это очень в курсе:

ASP.NET MVC Captcha Control

+0

Вне темы, какое программное обеспечение для блога вы используете, оно очень чистое. Мне это нравится. –

+0

@ dustin Вместо того, чтобы эффективно опубликовать ссылку, не могли бы вы разместить выдержку здесь? Мы не рекомендуем ссылки только для ответов. – slugster

+0

@Mystere Man: мое собственное домашнее пиво;) – dustinmoris

0

Лучший выбор просто использовать reCaptchaMvcExtensions из библиотеки пакета NuGet. Это простой в установке и использовании пакет, в котором используется полный google reCaptcha.

Смежные вопросы