呈现 HTML 作为 nvarchar 存储在数据库中
Rendering HTML stored in database as nvarchar
几天来我一直在努力解决这个问题。我能够更新我的应用程序以允许用户(我)将 HTML 代码输入文本字段并将该信息更新到数据库。但是,问题是,当我随后尝试显示该信息时,HTML 未呈现,而是显示为原始 HTML.
我已经在这个网站上搜索过这个问题的答案,但一直找不到。
我需要渲染 HTML 以便我的 CSS 和 JavaScript 可以执行它们的操作并格式化元素。
如果有人能为我指出正确的方向,那就太好了,因为我不可能直接将 HTML 硬编码到视图中。
例如 <span id="{1c}}></span>
javascript/css 将填空。但是,HTML 的显示与它显示的一样,而不是空白 space。同样,这只是一个示例。
添加代码:
来自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)
两者 return 都存储在数据库中,但 html 作为字符串数据而不呈现 html。
你应该使用:
<span id="{1c}}>@Html.Raw(YourString)</span>
不确定您是如何尝试渲染的,如果它是直接剃须刀那么它应该可以在不做任何事情的情况下工作。如果它通过 javascript/jquery 应该这样做。
$("#somediv").html('<span id="{1c}}"></span>');
不过,显示一些示例代码会很好。
使用这个:
@Html.Raw(Model.CardText)
可以这样想:在 MVC 中,@ 符号会自动编码你放在它后面的内容,除非你先 'wrap' 使用 Html.Raw。
几天来我一直在努力解决这个问题。我能够更新我的应用程序以允许用户(我)将 HTML 代码输入文本字段并将该信息更新到数据库。但是,问题是,当我随后尝试显示该信息时,HTML 未呈现,而是显示为原始 HTML.
我已经在这个网站上搜索过这个问题的答案,但一直找不到。
我需要渲染 HTML 以便我的 CSS 和 JavaScript 可以执行它们的操作并格式化元素。
如果有人能为我指出正确的方向,那就太好了,因为我不可能直接将 HTML 硬编码到视图中。
例如 <span id="{1c}}></span>
javascript/css 将填空。但是,HTML 的显示与它显示的一样,而不是空白 space。同样,这只是一个示例。
添加代码:
来自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)
两者 return 都存储在数据库中,但 html 作为字符串数据而不呈现 html。
你应该使用:
<span id="{1c}}>@Html.Raw(YourString)</span>
不确定您是如何尝试渲染的,如果它是直接剃须刀那么它应该可以在不做任何事情的情况下工作。如果它通过 javascript/jquery 应该这样做。
$("#somediv").html('<span id="{1c}}"></span>');
不过,显示一些示例代码会很好。
使用这个:
@Html.Raw(Model.CardText)
可以这样想:在 MVC 中,@ 符号会自动编码你放在它后面的内容,除非你先 'wrap' 使用 Html.Raw。