关于new MailMessage body
的快速问题我似乎无法在谷歌找到答案。
如何创建一个if语句来检查元素是否可见,然后获取元素中的字符串并将其应用到正文中?
mail.Body += "<b>" + D1ContactPanel.Visible ? "Subsidiary contacts: " : "" + "</b> " + D1ContactPanel.Visible ? D1ContactDDL.Text : "" + "</br></br>";
编辑:Visual Studio说“不能隐式地将类型'字符串'转换为'bool'”
答案 0 :(得分:2)
括在括号中,例如:
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "") + "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
这将评估您的条件并返回相应的字符串作为结果将被连接。
如果您错过括号,则首先尝试将D1ContactPanel.Visible
连接到“&lt; b&gt;”然后评估失败的条件,因为它无法评估字符串。因此错误“无法将字符串转换为布尔值”。
答案 1 :(得分:1)
你需要添加一些括号,不仅是为了编译而且为了开发人员的视力:)
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "") + "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
答案 2 :(得分:1)
mail.Body += "<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "") + "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "") + "</br></br>";
答案 3 :(得分:1)
将字符串值与布尔条件分开:
mail.Body += @"<b>" + (D1ContactPanel.Visible ? "Subsidiary contacts: " : "")
+ "</b> " + (D1ContactPanel.Visible ? D1ContactDDL.Text : "")
+ "</br></br>";
答案 4 :(得分:1)
请更改您的代码 从
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>";
答案 5 :(得分:1)
你可以像其他答案一样括在括号中以避免异常,但我认为你不需要检查两次并使这段代码更具可读性,如下所示
if(D1ContactPanel.Visible)
mail.Body += string.Format("<b>Subsidiary contacts: </b>{0}</br></br>", D1ContactDDL.Text);
然后你甚至可以将这个字符串文字移动到常量或资源
答案 6 :(得分:0)
你可以尝试
mail.Body += string.Format("<b>{0}</b> {1}<br /><br />", D1ContactPanel.Visible ? "Subsidiary contacts: " : string.Empty, D1ContactPanel.Visible ? D1ContactDDL.Text : string.Empty);