【问题标题】:MailTo: Asp.net邮寄至:Asp.net
【发布时间】:2013-01-30 23:52:47
【问题描述】:

我有一个 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";
 }
}

【问题讨论】:

  • 你想让这个标签可以点击吗(就像第一个&lt;a&gt;标签一样)?
  • 我有一种方法可以使用不同的电子邮件地址填充 EmailLabel。是的,我希望能够使其可点击(mailto :)。汉克斯

标签: c# asp.net


【解决方案1】:

你在那里尝试做的事情不会奏效。标签呈现为&lt;span&gt; 标签,因此它永远不会“可点击”。你想做更多这样的事情:

<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,它基本上是一个标准的HTML 标记,您可以在其中添加runat="server" 属性。

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

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

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

【讨论】:

    【解决方案2】:
    <html>
    <body>
    <span id="foo" 
          onclick="document.getElementById('foo').innerHTML = 'never say never'"
    >
        Click Me!
    </span>
    </body>
    </html>
    

    对于您的标签,请记住 .Text 是 .innerHTML 的服务器等效项,因此您可以在设置 .Text 时将所需的任何 HTML 直接放入 asp:Label 中。只需注意跨站点脚本攻击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      相关资源
      最近更新 更多