在Umbraco 4.11.10中遇到了一些问题,具体是使用剃刀宏(razor macro)的时候,让我陷入了困境。
问题:
在文本框多行字段中包含HTML元素,执行剃刀脚本时会“破坏”属性边界。
更多细节:
基本的宏有一个文本框多行字段,该字段作为参数传递到剃刀脚本中。
对于纯文本,这很有效,但最近的需求需要在此文本的各个位置添加标签。
我已经尝试过:
最初,我尝试对HTML进行转义,如下所示
>sup<1,2>/sup<
这很好用,直到我重新加载节点并重新发布时,查看数据库时发现,似乎第一次保存宏时,正确的转义HTML被包括在宏参数中:
description="(text here)>sup<1,2>/sup<(more text)" ...
当节点重新加载时,渲染的输出是实际的HTML字符(假设在显示在Umbraco后端之前进行了解码)。
<sup>1,2</sup>
当重新发布时,所传递的内容“原样”传递给 Razor 宏。
description="SINGLE (n=833) <sup>1,2</sup>
这将从第一个HTML标记的结尾开始,一直输出到宏参数的结尾作为其输出结果:
<p> ***+ ***vs ***(Should Stop Here)" hideBorder="0" preview="0" /></p>
需要翻译的内容:
希望在使用Razor参数时能否将HTML元素添加到多个文本框中,或者当重新加载节点时停止解码。由于历史原因和影响,如有可能,我更愿意不改变宏/参数,但如果必须改变,则必须改变。谢谢您抽出时间阅读!
问题:
我的问题是,在使用 Razor 参数时,是否有任何方法可以将 HTML 元素添加到多个文本框中,或者当重新加载节点时停止解码。
由于历史原因和影响,如果可能的话,我更愿意不更改宏/参数,但如果必须更改,则必须更改。感谢您抽出时间阅读!