1

htmlファイル内のAppSettingsセクションからimage tag source読み込み設定する方法。keyweb.config

web.configイメージタグがあり、ファイルキーからイメージソースを設定したい1つのhtmlファイルを使用しています。

web.config キーは次のとおりです。 <add key="Image" value="Image.gif" />

しかし、ソースにキーを設定できません。

私はこれを試しました:

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

しかし、そこからソースを読んでいません。

4

3 に答える 3

2

コメントに基づいて、電子メールで送信する html ファイルを生成しようとしているようです。注入place holdersしたい情報用に でhtml ファイルを作成したほうがよいでしょう。テキスト リーダーを使用してファイルから 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 Template クラスは次のようになります (これは非常に古いコードです!!)

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();
        }
    }
于 2013-08-09T13:12:48.973 に答える
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"]);

次に、メールの body プロパティをmyString

于 2013-08-09T12:17:36.253 に答える