新邮件正文中的If语句
本文关键字:If 语句 正文 新邮件 | 更新日期: 2023-09-27 18:25:23
关于new MailMessage body
的快速问题,我似乎在谷歌上找不到答案。
如何生成if语句,检查元素是否可见,然后获取元素中的字符串并将其应用于主体?
mail.Body += "<b>" + D1ContactPanel.Visible ? "Subsidiary contacts: " : "" + "</b> " + D1ContactPanel.Visible ? D1ContactDDL.Text : "" + "</br></br>";
编辑:Visual studio表示"无法将类型‘string’隐式转换为‘bool’"
用括号括起来,如:
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "") + "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
这将评估您的条件,并返回适当的字符串作为连接结果。
如果遗漏了方括号,则它首先尝试将D1ContactPanel.Visible
连接到"<b>",然后计算条件,但由于无法计算字符串而失败。因此出现错误"无法将字符串转换为布尔值"。
您需要添加一些括号,这不仅是为了编译,也是为了开发者的视力:)
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "") + "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
从布尔条件中分离字符串值:
mail.Body += @"<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "")
+ "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "")
+ "</br></br>";
请更改您的代码来自
mail.Body += "<b>" + D1ContactPanel.Visible ? "Subsidiary contacts: " : "" + "</b> " + D1ContactPanel.Visible ? D1ContactDDL.Text : "" + "</br></br>";
至
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "" )+ "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "") + "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
您可以像其他答案一样将其括在括号中以避免异常,但我认为您不需要检查两次,并使此代码更具可读性,如下所示
if(D1ContactPanel.Visible)
mail.Body += string.Format("<b>Subsidiary contacts: </b>{0}</br></br>", D1ContactDDL.Text);
然后您甚至可以将此字符串文字移动到常量或资源
您可以尝试
mail.Body += string.Format("<b>{0}</b> {1}<br /><br />", D1ContactPanel.Visible ? "Subsidiary contacts: " : string.Empty, D1ContactPanel.Visible ? D1ContactDDL.Text : string.Empty);