2013-08-09 3 views
1

Как установить image tag source от чтения key от AppSettings раздел в web.config в html-файле.Как установить источник тега изображения из web.config?

Я использую один html-файл, в котором есть тег изображения, и я хочу установить источник изображения из файла web.config.

Ключ web.config является: <add key="Image" value="Image.gif" />

Но я не в состоянии установить ключ на источник.

Я попытался это:

<img src="<%= ConfigurationSettings.AppSettings["Image"] %>" width="685" height="177" /> 

но не читает источник оттуда.

+0

Как выглядит сгенерированный html и как выглядит запись в web.config? – Stephen

+0

Вот запись web.config: <добавить ключ = "Image" значение = "Image.gif" /> и вот HTML для тега изображения: <тд = Объединение столбцов "2"> "width =" 685 "height =" 177 "/> – Pawan

+0

Это изображение в том же месте, что и на этой странице?так что page.html в той же папке, что и image.gif? – christiandev

ответ

2

На основе ваших комментариев, это выглядит, как вы пытаясь создать html-файл для отправки по электронной почте. Вам лучше создать html-файл с place holders для информации, которую вы хотите получить inject. Используйте текстовый ридер, чтобы прочитать html из файла, и используйте regex или string.replace в тексте, заменив place holders на фактические значения.

Вам необходимо будет иметь полный URL-адрес изображений.

например.

Чтобы прочитать HTML

var HTML = EmailTemplate.GetHTMLFromTemplate(path to template) 

public static string GetHTMLFromTemplate(string templatepath) 
    { 
     var TemplateBody = new StringBuilder(); 

     using (var Reader = new StreamReader(templatepath)) 
     { 
      string Line; 
      while ((Line = Reader.ReadLine()) != null) 
      { 
       TemplateBody.Append(Line); 
      } 
     } 

     return TemplateBody.ToString(); 
    } 

Затем замените части HTML

String.Replace("[image placeholder]", ConfigurationManager.AppSettings["Image"]); 

Email класс шаблона выглядит следующим образом (это очень старый код !!)

public class EmailTemplate 
    { 
     public string Body { get; private set; } 

     public static EmailTemplate GetTemplate(string body, string url, string html) 
     { 
      var AmendedHTML = new StringBuilder(html); 
      AmendedHTML.Replace("[body]", body); 
      AmendedHTML.Replace("../images", url + "images"); 

      var MyEmailTemplate = new EmailTemplate { Body = AmendedHTML.ToString() }; 

      return MyEmailTemplate; 
     } 

     public static EmailTemplate GetTemplate(string body, string title, string url, string year, string html) 
     { 
      var AmendedHTML = new StringBuilder(html); 
      AmendedHTML.Replace("[BODY]", body); 
      AmendedHTML.Replace("[HEADING]", title); 
      AmendedHTML.Replace("../images", url + "images"); 
      AmendedHTML.Replace("[DATE]", year); 
      AmendedHTML.Replace("[contactus.aspx]", url + "contactus/index.aspx"); 
      AmendedHTML.Replace("[unsubscribe.aspx]", url + "register/unsubscribe.aspx"); 

      var MyEmailTemplate = new EmailTemplate { Body = AmendedHTML.ToString() }; 

      return MyEmailTemplate; 
     } 

     public static string GetHTMLFromTemplate(string path) 
     { 
      var TemplateBody = new StringBuilder(); 

      using (var Reader = new StreamReader(path)) 
      { 
       string Line; 
       while ((Line = Reader.ReadLine()) != null) 
       { 
        TemplateBody.Append(Line); 
       } 
      } 

      return TemplateBody.ToString(); 
     } 
    } 
1

попробовать это: <img src="<%= System.Web.Configuration.WebConfigurationManager.AppSettings["Image"].ToString() %>" width="685" height="177" />

+0

Nayan его не работает. – Pawan

1

Вы хотите заменить значение в вашей .html шаблон электронной почты.

Вы можете сделать это, прочитав файл в памяти и заменив местозаполнитель в вашем .html-файле. Измените тег изображения на что-то вроде <img src="$$image$$" width="685" height="177" />

Затем в коде

string myString = ""; 
using (StreamReader reader = new StreamReader(Server.MapPath("~/Email/Product/<nameofthepage>.html"))) { 
myString = reader.ReadToEnd(); 
} 
myString = myString.Replace("$$image$$", ConfigurationSettings.AppSettings["Image"]); 

затем установить свойство тела вашей почты на myString

+0

Stephen Мне просто нужно прочитать этот ключ из источника изображения в html-файле. Потому что я делаю другие вещи в коде позади. – Pawan

+0

В какой папке находится ваше изображение? – Stephen

+0

../Email/Product/Image.gif – Pawan