0

我需要用值替换电子邮件中的占位符。占位符和表单控件名称位于自定义列表<MailReplacements>中,例如:

replacement.placeholder = "[UserName]",
replacement.formcontrol = "NameText.Text",

因为[UserName]实际上是我想要使用的,所以它在我的string.Replace. 但是,如何NameText.Text在我的 string.replace 中使用 VALUE?如果我使用:

message.replace(replacement.placeholder, replacement.formcontrol); 

我可以理解地收到一条消息,其中[UserName]替换为NameText.Text. 我如何用NameText.Text(即“Joe Blow”)的值替换它?

[UserName]andNameText.Text关联来自web.config. 所以,我不是故意将NameText.Text其用作字符串,而是将其作为字符串接收。

我不知道如何将该字符串转换为它所代表的值。

4

1 回答 1

0

我刚刚找到了 FindControl:

var StoredPlaceholders = (CustomConfigurationSection)ConfigurationManager.GetSection("MailPlaceholders");
 foreach (CustomConfigurationSection placeholder in StoredPlaceholders.SubSections["placeholder"])
            {
                MailReplacements.Add(new MailPlaceholder
                {
                    Placeholder = placeholder.Attributes["name"],
                    Formcontrol = placeholder.Attributes["form"]
                });
            }
            foreach (MailPlaceholder replacement in MailReplacements)
            {
                if ( !String.IsNullOrEmpty(replacement.Formcontrol))
                {
                    TextBox txt = RequestForm.FindControl(replacement.Formcontrol) as TextBox;
                    if (txt != null) replacement.ReplacementValue = txt.Text;
                }
            }
于 2012-10-22T20:36:59.413 回答