我在一些详细视图中使用HTML.Raw - 因此文本输出显示任何回车符或空格。但是,有时某人可能会在文本中间键入Web地址。我不知道网址在文本中的位置。我怎样才能得到它以便网址显示为超链接?
我在搜索中找到的唯一东西就是编码员知道网址的位置。这是一个例子(加上它很老)。 ASP.NET MVC3 link with image inside @Html.Raw
仅供参考,这是一个帮助人们为他们的问题打开门票的服务台系统。有时他们可能会说他们无法访问http://nameofwebsite.com或类似的东西。
这是我的代码:
@Html.Raw(Model.Note.Replace(Environment.NewLine, "<br/>"))
答案 0 :(得分:0)
您可以在填充模型时使用正则表达式,甚至可以在视图中使用正则表达式来“链接”超链接。
以下是正则表达式的示例(从this answer无耻地被盗):
var html = Regex.Replace(html, @"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+" +
"\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?" +
"([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$",
"<a href=\"$1\">$1</a>");
然后使用Html.Raw()
作为超链接进行渲染。