如果在一个新的Mailmessage机构内声明?

时间:2013-07-29 10:18:35

标签: c# html asp.net if-statement

关于new MailMessage body的快速问题我似乎无法在谷歌找到答案。

如何创建一个if语句来检查元素是否可见,然后获取元素中的字符串并将其应用到正文中?

mail.Body += "<b>" + D1ContactPanel.Visible ? "Subsidiary contacts: " : "" + "</b> " + D1ContactPanel.Visible ? D1ContactDDL.Text : "" + "</br></br>";

编辑:Visual Studio说“不能隐式地将类型'字符串'转换为'bool'”

7 个答案:

答案 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);