【问题标题】:Mark the checkbox true in html email template on basis of checked in form根据签入表单在 html 电子邮件模板中将复选框标记为 true
【发布时间】:2012-08-05 18:06:48
【问题描述】:

我必须发送一封包含一些复选框的电子邮件。我的 aspx 表单也有与 html 电子邮件模板中相同的复选框,但表单复选框是 asp 控件。

如果用户勾选了 1 个复选框而其他复选框未选中, 那么我如何将检查值发送到 html 模板并进入 html 模板并选择,取消选中 根据用户在表单中选择的html模板中的复选框。

html 复选框和 aspx 表单复选框都具有相同的文本。

【问题讨论】:

  • 显示您的代码以便我们更好地理解您的查询

标签: c# javascript asp.net html


【解决方案1】:

您如何生成和格式化电子邮件?你是在 VB.NET/C# 中用 System.Net.Mail 做的吗?如果您按照我认为的方式进行操作,我认为您最好的选择是在使用模板格式化电子邮件正文时传递一组真/假值,并选中/取消选中电子邮件中的复选框使用这些值。例如:

//Determine which checkboxes are checked and add them to the array.
Dim checkedBoxes New ArrayList
checkedBoxes.Add(IIf(chk_first.Checked, "checked", ""))
checkedBoxes.Add(IIf(chk_second.Checked, "checked", ""))
checkedBoxes.Add(IIf(chk_third.Checked, "checked", ""))

//Then you'd have your email generation code here. This is only the body part of it.
email.Body = String.Format(File.ReadAllText([YourTemplateFile]), checkedBoxes.ToArray())

当然,我在这里做了很多假设。然后,在您的模板文件中,每个检查的值都将使用数组中的真/假值,因此第一个将具有:

<input type="checkbox" name="check1" value="check1" {0} />

我希望这会有所帮助。如果我不知道,请发布您用于生成和发送电子邮件的代码,我将能够提供更多帮助。

【讨论】:

  • 所以它对你不起作用?它有没有给你任何错误?请发布您正在使用的代码,否则这是一个猜谜游戏。还是因为我在您需要 C# 时发布了一个 VB.NET 示例而遇到问题?
  • 在线字符串 body = string.Format(File.ReadAllText(@"D:\emailer.txt"),chkboxes);它给出了以下异常索引(从零开始)必须大于或等于零且小于参数列表的大小。
  • 我也试过这个字符串 body = GetEmailMessageBody(File.ReadAllText(@"D:\emailer.txt"), chk1.Checked, chk2.Checked, chk3.Checked, chk4.Checked);
    public static string GetEmailMessageBody(string ResourceContent, params object[] Values) { try { return string.Format(ResourceContent, Values); } catch (Exception ex) { throw ex; } }
    但是这段代码勾选了电子邮件中的所有复选框,我的表单中还有一些文本框,这些值也与复选框一起发送。
  • 对不起,我的代码弄错了。尝试改用 ArrayList。请参阅上面的编辑示例。
  • Converting ArrayList into array 和我尝试的一样,我收集了对象类型数组中的所有控件,同样的问题是一样的,我只选中了 2 个复选框,但是当我收到电子邮件时,它已将所有复选框标记为 true。
猜你喜欢
  • 2015-11-09
  • 1970-01-01
  • 2020-09-18
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多