razor - Umbraco Razor html 转义问题

标签 razor macros umbraco

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/

相关文章:

asp.net-mvc - 在 div 的 Style 属性中使用 MVC3 ViewData

c++ - C++ 中 ## 运算符的用途是什么,它叫什么?

macros - Common Lisp 宏的 Catch-22 情况

xslt - 如何在 umbraco 中调试 xslt

asp.net-mvc - ASP.Net MVC 3 : Child Action and Redirect

c# - 删除小数点后的值

c++ - 参数数量可变的宏

c# - 搜索包含搜索词的字段

sql - "Cannot open database - login failed"。在 Management Studio 中工作,而不是代码

.net - 在 MVC(Razor) 中用 LabelFor() 替换 DisplayNameFor() 会出现错误