如何将缩短的html字符串转换为标签中的实际html链接

时间:2013-04-19 18:20:45

标签: c# asp.net html

嘿伙计们我正在尝试将API的响应列表打印到标签中,我遇到的一个问题是响应(来自JSON)是一个带有缩短链接的字符串。当我将该字符串放入标签时,链接不被识别为链接,浏览器只是认为它是HTML,因此没有下划线或指针。我怎么解决这个问题?我已经尝试过HtmlEncode它并没有帮助。

这是我想要做的。

lblResponse.InnerHtml += "<strong>created_at:</strong> " + item.created_at 
                    + "<strong>&nbsp text:</strong> " + HttpUtility.HtmlEncode(item.text) + "<br />";

将其返回到标签中。虽然在我的浏览器中缩短的链接不被识别为链接。建议?

created_at:Tue Apr 16 20:30:32 +0000 2013 text:这是本周的一些社交媒体新闻... http://t.co/RR5DKvqUjd

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

var date = "Tue Apr 16 20:30:32 +0000 2013";
var text = "Here is some social media news for the week... http://t.co/RR5DKvqUjd";
var textwithanchor = Regex.Replace(text, @"\(?\bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]", delegate(Match match)
    {
        return string.Format("<a href='{0}'>{0}</a>", match.ToString());
    });
var html = "<strong>created_at:</strong> " + date + "<strong>&nbsp text:</strong> " + textwithanchor + "<br />"; 

正则表达式优雅地从这里借来:http://www.codinghorror.com/blog/2008/10/the-problem-with-urls.html但请注意警告。

答案 1 :(得分:0)

尝试这样的事情:

lblResponse.InnerHtml += "<strong>created_at:</strong> " + 
                         item.created_at + 
                         "<strong>&nbsp text:</strong> " + 
                         "<a href=\"" + item.text + "\"" + 
                         HttpUtility.HtmlEncode(item.text) + 
                         "</a><br />";