2016-04-06 63 views
1

我在一些细节视图中使用了HTML.Raw,因此文本输出显示的是任何回车符或空格。但是,有时候有人可能会在文本中间键入Web地址。我不知道Web地址在文本中的位置。我怎样才能得到它,以便Web地址将显示为超链接?在HTML.Raw中显示超链接

我可以在搜索中找到的唯一东西是编码器知道网址的位置。这里是一个例子(加上它很旧)。 ASP.NET MVC3 link with image inside @Html.Raw

仅供参考,这是一个帮助台系统,让人们为他们的问题打开票。有时他们可能会提出,他们不能访问http://nameofwebsite.com或类似的东西。

这里是我的代码:

@Html.Raw(Model.Note.Replace(Environment.NewLine, "<br/>")) 
+0

没有理由使用'@ Html.Raw(Model.Note.Replace(Environment.NewLine,“
”))'你可以设计元素的样式 - '

@Model.Note
' –

回答

0

填充你的模型,甚至可以在视图为“linkify”超链接助手时,您可以使用正则表达式。

这里的正则表达式(从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\-\._\?\,\'/\\\+&amp;%\$#\=~])*$", 
        "<a href=\"$1\">$1</a>"); 

这将然后渲染使用Html.Raw()为超链接。