在MVC

时间:2017-09-06 09:29:25

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 razor

在CSHTML页面中,我使用@Html.TextArea显示文字。现在我需要在该文本中创建一个链接。是否可以在TextArea中创建链接?

如果不可能,我可以用什么样的控件来显示带链接的文字?有任何建议请。

例如:

@Html.TextArea("MsgTxtBox","Messagewithlinkhere",new { readOnly = true, id = "MsgTxtBox" })

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但你必须使用一些javascript并提供文本中只有一个链接。将javascript onclick事件函数添加到文本框中:

@Html.TextArea("MsgTxtBox","Messagewithlinkhere",new { readOnly = true, id = "MsgTxtBox", onclick="redirectToUrl()" })

现在确保文本中的链接被[link]之类的字符包围,这样您就可以将它们与文本分开。让我们说文本的价值是“你好[https://www.google.com]世界

现在添加以下javascript:我们将获取第一个 [字符,然后是第二个] 的索引,并使用子字符串方法获取中间的字符串。请参阅link,然后使用window.location重定向到该链接。

<script type="text/javascript">
function redirectToUrl() {
   var text = document.getElementById("MsgTxtBox").value;
   var start = text.indexOf('[') + 1;
   var end = text.indexOf(']', start);
   var link = text.substring(start, end)
   window.location = link;
}
</script>