【问题标题】:How to show a link in the text of HTML.TextAreaFor in MVC Razor?如何在 MVC Razor 中的 HTML.TextAreaFor 文本中显示链接?
【发布时间】:2014-05-08 12:52:19
【问题描述】:

我有一个带有 HTML 的表单。 TextArea 用户可以在其中插入文本(如新闻)。我想允许用户拥有包含链接的文本。我可以将[AllowHtml] 添加到该字段的属性中,但我不知道如何在文本中添加链接,然后当我将其保存到我的数据库中时,当我从网站读取它时如何显示它。有什么解决办法吗? 我的程序写在Visual Studio 2013, C# .Net 4.0, MVC 4.0 Razor

---- 已更新----

感谢您的cmets

让我解释一下 - 我正在为社区编写应用程序。在我的应用程序(或网站)的一部分中,我想向用户展示社区新闻。为了插入这些新闻,我有一个管理员控制器,管理员可以为网站创建新新闻,我有一个新新闻模型。此模型具有 NewsText 的属性。在 CreateNews 的视图中,管理员可以将新闻文本插入到 TextArea 中,我通过 @Html.TextAreaFor(...) 显示它。因此,在此处插入文本并按保存按钮后,模型将转到控制器保存到数据库中。第一个问题来了,假设新闻的一部分有一个链接,管理员如何进入这个链接?以“a”标签或其他形式? 然后,当网站想要向最终用户显示该新闻时,控制器从数据库中获取 NewsText 并希望将其显示在屏幕上。现在,我怎样才能显示链接? Razor 会自动解析它还是我必须做其他事情?

【问题讨论】:

  • 您想在文本框中将链接显示为真正的超链接
  • 显示文字时(包括锚点)使用剃须刀@Html.DisplayTextFor(m => m.YourTextProperty)
  • 我补充了一些细节,请再看问题

标签: c# asp.net-mvc razor


【解决方案1】:

听起来您实际上想要使用 WYSIWYG 编辑器,因为您提到了用户添加文本链接的能力:List of WYSIWYG HTML editors

然后按照建议通过@Html.Raw() 保存并显示。

【讨论】:

    【解决方案2】:

    一个简单的解决方案是将文本按原样保存到数据库中。 从数据库中读取文本时,使用正则表达式查找任何链接。 用仅在“a”标签中扭曲的相同文本替换文本。 这也可以在插入数据库时​​完成。

    【讨论】:

    • 我补充了一些细节,请再看问题
    【解决方案3】:

    让用户像现在一样添加 html。 在展示的同时 试试@Html.Raw(Text)

    【讨论】:

    • 我补充了一些细节,请再看问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    相关资源
    最近更新 更多