2010-10-03 29 views
1

J'utilise cette approche Recaptcha this dans mon projet MVC mais il ne valide pas Strict 1.0 DOCTYPE.ASP.Net MVC Recaptcha et Strict Doctype

Quelqu'un peut-il aider?

Merci

+0

Que voulez-vous aider? – roryf

+0

pour l'obtenir pour passer la validation stricte doctype – Jon

+0

Je viens de regarder la source et il utilise un iframe donc il ne va pas passer de toute façon. la honte. – Jon

Répondre

0

Créer votre propre contrôle. Comme vous pouvez le voir dans la méthode RenderContents de RecaptchaControl, il utilise un iframe. Les iframes ne sont pas conformes à la norme HTML, vous devez donc utiliser une balise d'objet HTML.

protected override void RenderContents(HtmlTextWriter output) 
{ 
output.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript"); 
output.RenderBeginTag(HtmlTextWriterTag.Script); 
output.Indent++; 
output.WriteLine("var RecaptchaOptions = {"); 
output.Indent++; 
output.WriteLine("theme : '{0}',", this.theme ?? string.Empty); 
if (this.customThemeWidget != null) 
{ 
    output.WriteLine("custom_theme_widget : '{0}',", this.customThemeWidget); 
} 
output.WriteLine("tabindex : {0}", this.TabIndex); 
output.Indent--; 
output.WriteLine("};"); 
output.Indent--; 
output.RenderEndTag(); 
output.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript"); 
output.AddAttribute(HtmlTextWriterAttribute.Src, this.GenerateChallengeUrl(false), false); 
output.RenderBeginTag(HtmlTextWriterTag.Script); 
output.RenderEndTag(); 
output.RenderBeginTag(HtmlTextWriterTag.Noscript); 
output.Indent++; 
output.AddAttribute(HtmlTextWriterAttribute.Src, this.GenerateChallengeUrl(true), false); 
output.AddAttribute(HtmlTextWriterAttribute.Width, "500"); 
output.AddAttribute(HtmlTextWriterAttribute.Height, "300"); 
output.AddAttribute("frameborder", "0"); 
output.RenderBeginTag(HtmlTextWriterTag.Iframe); // Change this to object HTML tag 
output.RenderEndTag(); 
output.WriteBreak(); 
output.AddAttribute(HtmlTextWriterAttribute.Name, "recaptcha_challenge_field"); 
output.AddAttribute(HtmlTextWriterAttribute.Rows, "3"); 
output.AddAttribute(HtmlTextWriterAttribute.Cols, "40"); 
output.RenderBeginTag(HtmlTextWriterTag.Textarea); 
output.RenderEndTag(); 
output.AddAttribute(HtmlTextWriterAttribute.Name, "recaptcha_response_field"); 
output.AddAttribute(HtmlTextWriterAttribute.Value, "manual_challenge"); 
output.AddAttribute(HtmlTextWriterAttribute.Type, "hidden"); 
output.RenderBeginTag(HtmlTextWriterTag.Input); 
output.RenderEndTag(); 
output.Indent--; 
output.RenderEndTag(); 
}