MailTo:Asp.net

问题描述 投票:-1回答:2

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

ASPX :(第一部分仅适用于“[email protected]”,第二部分根据后面代码中的“if”语句动态更改标签(EmailLabel)。如何整合这两个,所以标签是mailto?谢谢。

<p>Email at <a href="mailto:[email protected]?subject=Comments">[email protected]</a>.</p>

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

代码背后:

public changeLabel()
{
 if (//Some Condition Here)
 {
    this.EmailLabel.Text = "[email protected]";
 }
 else
 {
  this.EmailLabel.Text = "[email protected]";
 }
}
c# asp.net
2个回答
0
投票

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

<p>Email at <a href="mailto:[email protected]?subject=Comments">[email protected]</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>标签,属性会略有不同,但现在你有一个真正的实时锚标签可以使用。

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


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中。请注意跨站点脚本攻击。

© www.soinside.com 2019 - 2024. All rights reserved.