MailTo:Asp.net

时间:2013-01-30 23:52:48

标签: c# asp.net

我有一个asp标签,我需要能够根据后面的代码进行更改。我怎样才能做到这一点?

ASPX :(第一部分仅适用于“TestA@abc.com”,第二部分根据后面代码中的“if”语句动态更改标签(EmailLabel)。如何将这两者集成在一起标签是mailto?谢谢。

<p>Email at <a href="mailto:TestA@abc.com?subject=Comments">TestA@abc.com</a>.</p>

<p>Email at <asp:Label ID="EmailLabel" runat="server"></asp:Label>.</p>

代码背后:

public changeLabel()
{
 if (//Some Condition Here)
 {
    this.EmailLabel.Text = "TestA@abc.com";
 }
 else
 {
  this.EmailLabel.Text = "TestB@abc.com";
 }
}

2 个答案:

答案 0 :(得分:0)

你在那里尝试做什么是行不通的。标签呈现为<span>标签,因此永远不会“可点击”。你想做更像这样的事情:

<p>Email at <a href="mailto:TestA@abc.com?subject=Comments">TestA@abc.com</a>.</p>

<p>Email at <asp:LinkButton ID="EmailLabel" runat="server"></asp:LinkButton>.</p>

然后,不要更改Text属性,而是更改NavigateUrl属性。

您还可以使用HtmlControl,它基本上是您添加runat="server"属性的标准HTML标记。

<p>Email at <a id="EmailLabel" runat="server" href=""></a>.</p>

然后,您可以通过服务器端代码修改此<a>标记,属性会略有不同,但现在您可以使用真实的实时锚标记。

这个其他问题也可能有用:How to launching email client on LinkButton click event?

答案 1 :(得分:0)

<html>
<body>
<span id="foo" 
      onclick="document.getElementById('foo').innerHTML = 'never say never'"
>
    Click Me!
</span>
</body>
</html>

对于你的Label,只需记住.Text是.innerHTML的服务器等价物,这样你就可以在设置.Text时把你想要的任何HTML放到asp:Label中。请注意跨站点脚本攻击。