LoadControl, usercontrol in WebMethod

I am trying to send an email through WebMethod . Below is the code that I usually use on regular mail.

 [WebMethod] public static void SendEmail(string name, string phone, string emailaddress, string interest, string comments) { var control = LoadControl("~/Shared/Controls/EmailTemplate_PartnerWithUs.ascx"); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); Html32TextWriter htw = new Html32TextWriter(sw); control.RenderControl(htw); sb.Replace("%name%", name); sb.Replace("%phone%", phone); sb.Replace("%emailaddress%", emailaddress); sb.Replace("%interest%", interest); sb.Replace("%comments%", comments); EmailUtility.SendEmailMessage(SettingsManager.GetContactRecipientEmails(), "CoyleHomeBuyers.com Partner Form", sb.ToString()); } 

The error I am getting is:

 An object reference is required for the non-static field, method, or property 'System.Web.UI.TemplateControl.LoadControl(string)' 

Is there a way to load this control into WebMethod?

+6
source share
2 answers
 UserControl uc= new UserControl(); Control control = uc.LoadControl("~/Shared/Controls/EmailTemplate_PartnerWithUs.ascx"); 
+6
source

You need to enter it into the control type.

For instance:

 Email_PartnerWithUs control = (Email_PartnerWithUs)LoadControl("~/Shared/Controls/EmailTemplate_PartnerWithUs.ascx"); 

See here: http://msdn.microsoft.com/en-us/library/system.web.ui.templatecontrol.loadcontrol(v=VS.71).aspx

0
source

All Articles