Ren*_*ndy 2 html c# asp.net rendering
我的标记中有一些代码如下:
<% Response.Write(((String)objRow["Post"]).Trim()); %>
Run Code Online (Sandbox Code Playgroud)
objRow ["Post"]中的值是HTML标记 - 类似于:
<p><span style="color: #ff0000;">asdsada</span></p>
Run Code Online (Sandbox Code Playgroud)
其内容使用tinymce创建.我现在想要渲染生成的html - 基本上是先前创建的保存函数的视图函数.
目前,我的标记字面上将你在那里看到的HTML吐出到我的网站上 - 但我真正想要的是一条红色的文字说asdsada.
请帮忙
听起来你试图显示的值已经是html编码的.试试这个:
<%= HttpUtility.HtmlDecode((string)objRow["Post"]) %>
Run Code Online (Sandbox Code Playgroud)
我的 Asp.net 版本稍高一些,但这可能会对使用 .net Core 2.0 MVC 的人有所帮助。
我使用以下方法在我的Asp.Net Core 2.0 MVC项目中渲染 html(html 是通过Tiny MCE创建并保存在数据库中,然后在 Razor 视图上渲染)。
请尝试以下两个步骤:
1)在_ViewImports.cshtml中包含System.Net:
@using System.Net
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Run Code Online (Sandbox Code Playgroud)
2)在View.cshtml中使用HtmlDecode渲染 html :
@Html.Raw(@WebUtility.HtmlDecode(Model.MyHtmlData))
Run Code Online (Sandbox Code Playgroud)
这对我有用,希望有帮助!
但是如果没有HtmlDecode,Html.Raw将显示带有 html 标签的MyHtmlData(不渲染 html,只是显示它)。我想,这是因为数据已经是 HTML 编码的,正如 Zdravko Danev 提到的:
@Html.Raw(Model.MyHtmlData)
Run Code Online (Sandbox Code Playgroud)