【问题标题】:Retrieve Plain text from string while retrieving from db itself.(Need to avoid all fonts and styles)从数据库本身检索时从字符串中检索纯文本。(需要避免所有字体和样式)
【发布时间】:2019-08-03 18:46:53
【问题描述】:

我的数据库中有“预计在经济结束日期未结清”(这是粘贴了一些字体的副本)。 但是当我在 html 页面上检索它时,它的显示如下。

 <label class="control-label table_cell" >
                                <span>Expected Outstanding&nbsp;On&nbsp;Economical End Date</span>
                            </label>

但是当我用平面文本手动更新它时,它会正常出现。

<label class="control-label table_cell" `enter code here`>
                            <span>Expected Outstanding On Economical End Date</span>
                        </label>

如何在从数据库中检索时将其转换为没有任何字体和样式的平面文本?

【问题讨论】:

  •  表示不间断空格,它用于在自动换行时留下空格''而不换行,如果你从数据库中获取这个,那么你存储在数据库中的数据实际上是Expected Outstanding&amp;nbsp;On&amp;nbsp;Economical End Date而不是@ 987654324@错了请检查并回复
  • 我在 db 中有一堆这样的数据。检索时需要避免这种情况.. 有希望吗?

标签: javascript c# html angular asp.net-core


【解决方案1】:

正如@kowsikbabu 所说,&amp;nbsp; 是用于不间断空格字符的 HTML 实体。它是一个特殊字符,在渲染时看起来像一个空格,但不允许像换行时那样的空格。

我不确定它最初是如何出现在您的数据中的。这可能是您应该首先查看的地方。但是,无论您以后使用什么方式更新值,都可以理解 HTML 实体,并在提交数据时将其视为空间。因此,在您更新之后,&amp;nbsp; 实体已被替换为普通空格。

现在,当您在视图中打印它时,Razor 实际上会默认转义 HTML,以防止脚本注入和其他类似的恶意攻击。换句话说,实际上在源中打印的是:

Expected Outstanding&amp;nbsp;On&amp;nbsp;Economical End Date

&amp;amp; HTML 实体对应于&amp; 字符,这就是为什么当浏览器渲染时你最终会得到:

Expected Outstanding&nbsp;On&nbsp;Economical End Date

为了防止 Razor 这样做,您可以使用 @Html.Raw(Model.Property),然后它将打印未转义的字符串,允许 &amp;nbsp; 字符在源中不受干扰地通过,这将允许浏览器将它们正确呈现为空格.

无论长短,如果您无法控制以值结尾的 HTML 实体,则使用 @Html.Raw 显示该值就可以了。否则,如果您不希望该值实际允许 HTML,那么您需要首先弄清楚它为什么进入那里并修复它。

【讨论】:

  • 不是剃须刀 .. 我使用的是带角度的纯 HTML
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多