Razor 翁布拉科剃须刀问题

Razor 翁布拉科剃须刀问题,razor,macros,umbraco,Razor,Macros,Umbraco,Umbraco 4.11.10中的razor宏出现问题,这让我很困惑 问题: 在文本框多行字段中包含html元素会在执行razor脚本时“破坏”属性边界 更多详细信息: 基本宏有一个文本框多字段,作为参数传递到razor脚本中 对于纯文本,这非常有效,但是最近的一个需求要求在不同的位置向文本添加标记 我尝试过的: 起初,我尝试像这样转义html >sup<1,2>/sup< 这非常有效,直到我重新加载节点并重新发布,在数据库中查看时,似乎

Umbraco 4.11.10中的razor宏出现问题,这让我很困惑

问题:

在文本框多行字段中包含html元素会在执行razor脚本时“破坏”属性边界

更多详细信息:

基本宏有一个文本框多字段,作为参数传递到razor脚本中

对于纯文本,这非常有效,但是最近的一个需求要求在不同的位置向文本添加标记

我尝试过的:

起初,我尝试像这样转义html

>sup<1,2>/sup<
这非常有效,直到我重新加载节点并重新发布,在数据库中查看时,似乎第一次保存宏时,正确的转义html被包含为宏参数:

description="(text here)>sup<1,2>/sup<(more text)" ...
重新加载节点时,渲染输出为实际的html字符(假设在显示在umbraco后端之前已解码)

1,2
当重新发布时,将“按原样”传递给Razor宏

 description="SINGLE (n=833) <sup>1,2</sup>
description=“单个(n=833)1,2
然后,从第一个html标记的末尾到宏参数的末尾输出,作为其输出:

<p> ***+ ***vs ***(Should Stop Here)" hideBorder="0" preview="0" /></p>
***+***vs***(应到此为止)“hideBorder=“0”preview=“0”/

应该是哪一个 诸如此类的废话+**vs*(应该到此为止)“hideBorder=“0”preview=“0”/>

问题:

我的问题是,当用作razor参数时,是否有任何方法将html元素添加到文本框中,或者在重新加载节点时停止解码

由于遗留问题和影响,如果可能的话,我宁愿不更改宏/参数,但如果必须的话


感谢您花时间阅读!

最后,我决定使用带有RegEx的helper函数来替换自定义html元素键,例如$gt$for>和$lt$for我遇到了一个类似的问题,我希望html/Javascript通过一个以textMultiLine为参数的宏直接插入RTE

在不转义的情况下取出标签的解决方案是:

@Html.Raw(HttpUtility.HtmlDecode(Parameter.Code));

嗯,不确定这是否是同一个问题,问题是“xml blob”如何存储在数据库中,当解析回来时,html会破坏宏元素,导致它读取作为该属性一部分的任何其他参数。
$lt$span$gt$1,2,3 $lt$/span$gt$
@Html.Raw(HttpUtility.HtmlDecode(Parameter.Code));