2016-11-19 53 views
0

我一直在试图弄清楚这几天。我能够更新我的应用程序以允许用户(我)将HTML代码输入到文本字段并将该信息更新到数据库。但是,问题是,当我尝试显示该信息时,HTML未呈现,但显示为原始HTML。将存储在数据库中的HTML呈现为nvarchar

我已经搜索了这个网站的答案,但一直无法。

我需要呈现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>&lt;span id=&quot;{t}&quot;&gt;Tap&lt;/span&gt;Prodigal Sorcerer Deals 1 damage to target creature or player.</p> 

我试图更新与视图然而,相同的责任SE收到

@Html.Raw("@Model.CardText") 

,也没有引号

@Html.Raw(@Model.CardText) 

的都返回什么是存储在数据库中,但与HTML作为字符串数据,而不是呈现的HTML。

+0

的例子是在由于格式是如下'错误留出<跨度ID =“{1C}}”>' – amfilipiak

+0

如果看到可以看到一些代码将更容易 – Yanga

+0

[@ Html.Raw() ](https://msdn.microsoft.com/en-us/library/gg480740(v = vs.118).aspx) –

回答

0

使用此:

@Html.Raw(Model.CardText) 

认为它是这样的:MVC中的@符号会自动编码,你把它的后面,除非你“包装”它首先通过Html.Raw。

+0

太棒了!谢谢你们。我看到我做错了什么。我不需要2nd @符号。这是这样的东西,让我想用笔记本电脑打在自己头上。 – amfilipiak

0

你应该使用:

<span id="{1c}}>@Html.Raw(YourString)</span> 
0

不知道你怎么想渲染,如果是直剃刀那么它应该没有做任何工作。如果它是通过javascript/jquery进行的,则应该这样做。

$("#somediv").html('<span id="{1c}}"></span>'); 

虽然,它会很高兴显示一些示例代码。