Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.NET中构建整个mailto锚定_C#_Asp.net_Hyperlink_Anchor_Stringbuilder - Fatal编程技术网

C# 如何在asp.NET中构建整个mailto锚定

C# 如何在asp.NET中构建整个mailto锚定,c#,asp.net,hyperlink,anchor,stringbuilder,C#,Asp.net,Hyperlink,Anchor,Stringbuilder,我有一个文本标记,它被传递一个字符串列表。我希望传递给它的字符串之一是电子邮件。。我想电子邮件是一个超链接。这就是我到目前为止得到的 tenancyManager.UserEmail = "a@b.c"; if (null != tenancyManager.UserEmail) { var emailAnchor = "<a href="+"mailto:"+tenancyManager.UserEmail+">"+ "</a>"; builder.Ap

我有一个文本标记,它被传递一个字符串列表。我希望传递给它的字符串之一是电子邮件。。我想电子邮件是一个超链接。这就是我到目前为止得到的

tenancyManager.UserEmail = "a@b.c";
if (null != tenancyManager.UserEmail)
{
    var emailAnchor = "<a href="+"mailto:"+tenancyManager.UserEmail+">"+ "</a>";
    builder.Append(emailAnchor);
    builder.Append("<br />");
}
tenacymanager.UserEmail=”a@b.c";
if(null!=tenacymanager.UserEmail)
{
var emailAnchor=“”;
builder.Append(emailAnchor);
builder.Append(“
”); }
这似乎不起作用,有人能帮我修改语法吗?我也试过了

var email = string.Format("<a href={0}{1} Text={2}> </a>", "mailto:", tenancyManager.UserEmail, tenancyManager.UserEmail);
var email=string.Format(“,”mailto:”,tenacymanager.UserEmail,tenacymanager.UserEmail);
您的
字符串.Format()
代码错误。尝试:

var email = string.Format("<a href='mailto:{0}'>{0}</a>", tenancyManager.UserEmail);
var email=string.Format(“,tenacymanager.UserEmail”);

这将满足您的要求:

StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter tag = new HtmlTextWriter(stringWriter))
{
    tag.AddAttribute(HtmlTextWriterAttribute.Href, string.Format("mailto:{0}", tenancyManager.UserEmail));
    tag.RenderBeginTag(HtmlTextWriterTag.A);
    tag.Write(tenancyManager.UserEmail);
    tag.RenderEndTag();

}
literal.Text = stringWriter.ToString();
虽然我不知道你为什么不直接使用
?像这样:

<asp:HyperLink id="hypEmail" runat="server" />
hypEmail.NavigateUrl = string.Format("mailto:{0}", tenancyManager.UserEmail);
hypEmail.Text = string.Format("mailto:{0}", tenancyManager.UserEmail);

hypEmail.NavigateUrl=string.Format(“mailto:{0}”,tenacymanager.UserEmail);
hypEmail.Text=string.Format(“mailto:{0}”,tenacymanager.UserEmail);

您的formatString错误:html标记没有文本属性

string.Format("<a href=\"mailto:{0}\">{0}</a>", tenancyManager.UserEmail);
或者,如果您想拥有完整的html输出控件,请使用
GenericHtmlControl
HtmlAnchor


我怎么使用文字控件来注入html是一种不好的做法

可能会在锚定标记中添加一些文本?通过“似乎不起作用”,你是什么意思?你有例外吗?
emailAnchor
中的变量是设置的还是返回的
null
?更多信息总是更好…同样在
字符串中。Format
您的格式项比参数多。。那将抛出一个错误。为什么你使用文字而不是asp:hyperlink?我真想知道为什么有人否决我的答案。如果有人不同意一个答案,他应该争辩,而不是隐藏在匿名之下。这是STACKExchange网络的基础。依我拙见
hl.NavigateUrl = string.Format("mailto:{0}", tenancyManager.UserEmail);
hl.Text = tenancyManager.UserEmail;