【问题标题】:Create a link within Textarea of CSHTML page in MVC在 MVC 中的 CSHTML 页面的 Textarea 内创建链接
【发布时间】:2017-09-06 09:29:25
【问题描述】:

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

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

例如:

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

【问题讨论】:

  • 在 Textarea 中创建链接是一项繁琐的任务。尝试使用一些其他控件,例如标签。
  • 你想在这里做什么。您已将 <textarea> 设为只读,因此您无法在其中创建任何内容。您是否只想显示包含链接的文本? (如果是这样,不要使用<textarea> - 只需使用<div>@Html.Raw("your message with link")</div>
  • @Stephen Muecke - 感谢您的建议。如果可能的话,请给我一个例子或任何参考链接都会有所帮助。
  • 我之前的评论中有一个例子:)
  • @Html.Raw("Message with link here") 或简单地使用<div><span> 标签和<a> 链接应该可以工作 - 无需使用@Html.TextArea .

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


【解决方案1】:

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

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

现在请确保文本中的链接被 [link] 之类的字符包围,这样您就可以将它们与文本分开。假设文本的值为“Hello [https://www.google.com]World

现在在顶部添加以下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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2018-07-04
    • 1970-01-01
    • 2016-01-08
    • 2016-12-31
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多