Captcha for Sitefinity 5
Hi
I was trying to add form Captcha custom control in Sitefinity 5, but there was a problem with path on Path name. For example,
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
Telerik.Sitefinity.Web.UI;
using
System.ComponentModel;
using
System.Web.UI;
using
Telerik.Sitefinity.Modules.Pages;
using
System.Web.UI.HtmlControls;
using
Telerik.Pdf.Security;
using
Telerik.Sitefinity.Forms.Model;
using
Telerik.Sitefinity.Modules.Forms;
using
Telerik.Sitefinity.Modules.Forms.Web.UI.Fields;
using
System.Globalization;
using
Telerik.Sitefinity.Fluent;
namespace
Telerik.Sitefinity.SitefinityWebApp
class FormQapTchaControl: SimpleScriptView
#region
Properties
protected override string LayoutTemplateName
get return null;
public override string LayoutTemplatePath
get
return this.layoutTemplatePath;
set
this.layoutTemplatePath = value;
[
Category("QapTcha properites")]
public bool AutoRevert
get
return this.autoRevert;
set
this.autoRevert = value;
[
Category("QapTcha properites")]
public bool DisabledSubmit
get
return this.disabledSubmit;
set
this.disabledSubmit = value;
[
Category("QapTcha properites")]
public string TxtLock
get
return this.txtLock;
set
this.txtLock = value;
[
Category("QapTcha properites")]
public string TxtUnlock
get
return this.txtUnlock;
set
this.txtUnlock = value;
#endregion
[
Browsable(false)]
public HtmlGenericControl QapTchaDiv
get
return this.Container.GetControl<HtmlGenericControl>("QaptCha", true);
#region
Methods
protected override void OnPreRender(EventArgs e)
base.OnPreRender(e);
PageManager.ConfigureScriptManager(this.Page, ScriptRef.JQueryUI);
public override IEnumerable<System.Web.UI.ScriptDescriptor> GetScriptDescriptors()
var descriptors = new List<ScriptDescriptor>();
var descriptor = new ScriptControlDescriptor(typeof(FormQapTchaControl).FullName, this.ClientID);
//pass
descriptor.AddProperty(
"qapTchaDiv", this.QapTchaDiv.ClientID);
descriptor.AddProperty(
"autoRevert", this.AutoRevert);
descriptor.AddProperty(
"disabledSubmit", this.DisabledSubmit);
descriptor.AddProperty(
"txtLock", this.TxtLock);
descriptor.AddProperty(
"txtUnlock", this.TxtUnlock);
descriptors.Add(descriptor);
return descriptors;
public override IEnumerable<System.Web.UI.ScriptReference> GetScriptReferences()
var scripts = new List<ScriptReference>()
new ScriptReference(FormQapTchaControl.componentScriptPath, typeof(FormQapTchaControl).Assembly.FullName),
new ScriptReference(FormQapTchaControl.qapTchaScript, typeof(FormQapTchaControl).Assembly.FullName),
new ScriptReference(FormQapTchaControl.jqueryUITouchScript, typeof(FormQapTchaControl).Assembly.FullName)
;
return scripts;
protected override void InitializeControls(GenericContainer container)
#endregion
#region
Private fields
public string layoutTemplatePath = "~/Samples/SitefinityWebApp.Resources.Views.FormQapTchaControl.ascx";
private bool autoRevert = true;
private bool disabledSubmit = true;
private string txtLock = "Locked : form can't be submited";
private string txtUnlock = "Unlocked : form can be submited";
private static string componentScriptPath = "SitefinityWebApp.Resources.Scripts.FormQapTchaControl.js";
private static string jqueryUITouchScript = "SitefinityWebApp.Resources.Scripts.jquery.ui.touch.js";
private static string qapTchaScript = "SitefinityWebApp.Resources.Scripts.QapTcha.jquery.js";
#endregion
Check the properties of your resources (template etc) to make sure Build Action == Embedded Resource.
I'm always forgetting to do that and then get this type of error.