嘿伙计们我正在尝试将API的响应列表打印到标签中,我遇到的一个问题是响应(来自JSON)是一个带有缩短链接的字符串。当我将该字符串放入标签时,链接不被识别为链接,浏览器只是认为它是HTML,因此没有下划线或指针。我怎么解决这个问题?我已经尝试过HtmlEncode它并没有帮助。
这是我想要做的。
lblResponse.InnerHtml += "<strong>created_at:</strong> " + item.created_at
+ "<strong>  text:</strong> " + HttpUtility.HtmlEncode(item.text) + "<br />";
将其返回到标签中。虽然在我的浏览器中缩短的链接不被识别为链接。建议?
created_at:Tue Apr 16 20:30:32 +0000 2013 text:这是本周的一些社交媒体新闻... http://t.co/RR5DKvqUjd
提前感谢您的帮助。
答案 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>  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>  text:</strong> " +
"<a href=\"" + item.text + "\"" +
HttpUtility.HtmlEncode(item.text) +
"</a><br />";