我试图在过去6小时内解决这个问题,但无法完成。
这里我的Razor视图中有一个模板脚本。
<script type="text/template" id="Blog_Post_Template">
{{if DescType == "FULL"}}
${FDesc}
{{/if}}
{{if DescType == "SORT"}}
${SDesc}
{{/if}}
</script>
现在,我想要的是在这个模板中使用Razor功能。
让我们来看看@ Html.Raw(),我想在$ {FDesc}和$ {SDesc}中使用@ Html.Raw()。
我尝试了很多转义序列,比如,
@Html.Raw("'${FDesc}'")
@Html.Raw("\'${FDesc}\'")
并提供更多解决方案,但我在我开始时就出现了。
输入就像是一个带有html参数的简单文字
<p> Test this </p>
输出将是 html
感谢,如果有人可以解决它..
答案 0 :(得分:1)
您似乎并不了解HTTP的客户端 - 服务器性质的影响。 Razor代码在服务器端运行,而您的JavaScript /模板代码将在客户端运行,服务器已完成其工作并返回响应。因此,@Html.Raw("'${FDesc}'")
之类的内容将输出'${FDesc}'
,而不是${FDesc}
如果您需要确保打印该模板变量而不进行HTML转义,那么您需要依赖JavaScript模板库中的功能,而不是Razor。
答案 1 :(得分:0)
不完全确定服务器和客户端是什么,但是我可能不熟悉你正在使用的模板,但是服务器端评估变量然后渲染客户端没有可用的元素可以使用{{1元素:
<text></text>
也许这会有所帮助?
答案 2 :(得分:0)
最后,在R&amp; D 3天后,我找到了解决方案。
顺便说一句,我们不能使用razor模板作为@chris说,但有另类选择 它非常简单。答案是模板中的 Html 标记,请参阅下面的示例。
{{ html 价值}}
我的完整代码现在看起来像,
<script type="text/template" id="Blog_Post_Template">
{{if DescType == "FULL"}}
{{html FDesc}} // which will now give me pure html
{{/if}}
{{if DescType == "SORT"}}
{{html SDesc}}
{{/if}}
</script>
答案 3 :(得分:0)
将模板包装在div等html元素中
<script type="text/template" id="Blog_Post_Template">
<div>
{{if DescType == "FULL"}}
${FDesc}
{{/if}}
{{if DescType == "SORT"}}
${SDesc}
{{/if}}
</div>
</script>