Umbraco 4.11.10 中的 Razor 宏有问题,这真的让我很困惑,
问题:
在执行 razor 脚本时,在文本框多行字段中包含 html 元素会“破坏”属性边界。
更多详情:
基本宏有一个文本框多个字段,它作为参数传递到 razor 脚本中。
对于纯文本,这很好用,但最近的要求要求在不同位置向该文本添加 标签。
我尝试过的:
最初我尝试像这样转义 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>
应该是
blah blah blah + **vs *(应该在此处停止)"hideBorder="0"preview="0"/>
问题:
我的问题是,当用作 razor 参数时,有没有办法将 html 元素添加到多个文本框,或者有什么方法可以在重新加载节点时停止解码。
由于遗留问题和影响,我宁愿尽可能不更改宏/参数,但如果这是必须的,那也是必须的。
感谢您花时间阅读!
最佳答案
我有一个类似的问题,我希望通过将 textMultiLine 作为参数的宏将 HTML/Javascript 直接插入到 RTE 中。
在不转义标签的情况下取出标签的解决方案是:
@Html.Raw(HttpUtility.HtmlDecode(Parameter.Code));
关于razor - Umbraco Razor html 转义问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818223/