从codebehind(或前端)设置mailto

时间:2013-11-26 16:46:41

标签: c# html asp.net

我必须关注html代码:

Email:&nbsp;<a href="mailto:...?subject=subject"><asp:Label style="margin-right: 90px;" ID="EmailLabel" CssClass="InfoData" runat="server" Text="E-mail"></asp:Label></a>电子邮件:``

如标签所示,我有一个mailto。我需要在mailto上添加一封电子邮件,但这封电子邮件会有所不同,所以我无法对其进行硬编码。我从数据库中获取它,所以我已经拥有它,但是如何将它作为变量添加到html代码中呢?

找到的所有示例都在mailto中编码了硬编码的电子邮件:

4 个答案:

答案 0 :(得分:3)

由于你想控制服务器端的值,我建议使用服务器控件,如下所示:

<asp:HyperLink ID="HyperLink1" runat="server" 
               NavigateUrl="mailto:abc@abc.com" 
               Text="abc@abc.com">
</asp:HyperLink>

NavigateUrlText是您要在代码隐藏中与之交互的属性,如下所示:

// Get values from database
string emailAddress = GetEmailFromDatabase();
string subject = GetSubjctFromDatabase();

// Set NavigateUrl to use email address and subject values from above
HyperLink1.NavigateUrl = "mailto:" + emailAddress + "?subject=" + subject;

// You can also set the text of the hyper link here or in the markup
HyperLink1.Text = "Send email to " + emailAddress;

  

注意:标记设置了NavigateUrl值,但您可以将其从标记中删除,或者将其保留,因为代码隐藏将覆盖它。我只是表明该属性存在,而不是试图将您与硬编码值混淆。

答案 1 :(得分:1)

将此添加到您的标记中:

<a id="mailtoLink" href="" runat="server">email</a>

在你的代码背后:

mailtoLink.Attributes["href"] = "mailto:a@a.com";

答案 2 :(得分:1)

尝试使用文字控件:

<asp:Literal id="emailLiteral" runat="server"></asp:Literal>

对于背后的代码:

string emailColumn = YourGetEmailMethod()
emailLiteral.Text = "<a href=""mailto:" + emailColumn + """>Send mail to" + emailColumn + "</a>"

答案 3 :(得分:1)

在你的aspx中

将你的主播的href设置为href =&lt;%= destinationEmail%&gt;

您班级中的代码隐藏(不在方法内)

public string destinationEmail =“mailto:test@test.com”;

然后,您可以将destinationEmail更改为您想要的任何内容。