0

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

这是我想要做的。

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

这会将其返回到标签中。尽管在我的浏览器中,缩短的链接未被识别为链接。建议?

created_at:2013 年 4 月 16 日星期二 20:30:32 +0000 文本:这是本周的一些社交媒体新闻... http://t.co/RR5DKvqUjd

在此先感谢您的帮助。

4

2 回答 2

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但请注意注意事项。

于 2013-04-19T18:24:52.523 回答
0

尝试这样的事情:

lblResponse.InnerHtml += "<strong>created_at:</strong> " + 
                         item.created_at + 
                         "<strong>&nbsp text:</strong> " + 
                         "<a href=\"" + item.text + "\"" + 
                         HttpUtility.HtmlEncode(item.text) + 
                         "</a><br />";
于 2013-04-19T18:34:06.107 回答