我一直试图解决这个问题几天。我能够更新我的应用程序以允许用户(我)将HTML代码输入到文本字段中并将该信息更新到数据库。但问题是,当我尝试显示该信息时,HTML不会呈现,而是显示为原始HTML。
我在这个网站上搜索过这个问题的答案,但一直无法解决。
我需要渲染HTML,以便我的CSS和JavaScript可以完成他们的工作并格式化元素。
如果有人能指出我正确的方向,那就太好了,因为我不可能直接将HTML硬编码到视图中。
示例将是<span id="{1c}}></span>
javascript / css将填空。但是,HTML显示的方式与显示的不同,而不是空格。再次,这只是一个例子。
添加代码:
来自Card.cs
[AllowHtml]
[DataType(DataType.MultilineText)]
public string CardText { get; set; }
数据输入到文本字段并保存到数据库。
<span id="{t}">Tap</span>Prodigal Sorcerer Deals 1 damage to target creature or player.
在视图中呼叫:
@Model.CardText
显示在页面上:
<span id={t}">Tap</span>Prodigal sorcerer Deals 1 damage to target creature or player.
检查页面来源显示:
<p><span id="{t}">Tap</span>Prodigal Sorcerer Deals 1 damage to target creature or player.</p>
我尝试使用以下内容更新视图,但收到相同的响应
@Html.Raw("@Model.CardText")
也没有引号
@Html.Raw(@Model.CardText)
两者都返回存储在数据库中的内容,但是将html作为字符串数据而不是呈现为html。
答案 0 :(得分:0)
您应该使用:
<span id="{1c}}>@Html.Raw(YourString)</span>
答案 1 :(得分:0)
不确定你是如何尝试渲染的,如果它直接用于剃刀那么它应该可以在不做任何事情的情况下工作。如果它通过javascript / jquery进行,则应该这样做。
$("#somediv").html('<span id="{1c}}"></span>');
尽管如此,展示一些示例代码还不错。
答案 2 :(得分:0)
使用此:
@Html.Raw(Model.CardText)
可以这样想:在MVC中,@符号会自动编码你所添加的内容,除非你首先使用Html.Raw将它包起来。