停止Sparkview转义html

时间:2011-06-13 11:15:08

标签: spark-view-engine

我正在尝试输出一些包含

的HTML视频标签
<source src="${Model.WebMFilename}" type='video/webm; codecs="vp8, vorbis"' />

但是在浏览器中,这会呈现为

<source vorbis""="" vp8,="" type="video/webm; codecs=" src="VP8_645001.webm"></source>

知道如何阻止Sparkview重新格式化输出吗?

2 个答案:

答案 0 :(得分:2)

你确定你的输出吗?我通过源代码中的单元测试运行了这个确切的场景,我得到了以下内容:

输入:

<source src="${Model.WebMFilename}" type='video/webm; codecs="vp8, vorbis"' />

结果:

<source src="VP8_645001.webm"  type="video/webm; codecs="vp8, vorbis"" />

这看起来像Spark中的“功能”在这里受到影响,而且随着客户端框架,json流行度和HTML5属性的使用,这变得越来越普遍。

我所说的“功能”是Spark可以读取您的输入,您可以在您的属性周围使用单引号或双引号,它可以理解属性中的值而不会出现问题,但是当前存在副作用使用双引号而不是实际使用的引用类型自动(和错误地)替换周围属性的编译。

我目前正在源代码中修复此问题。与此同时,你可以尝试将双引号放在属性的外部,并在内部尝试单引号,虽然我知道这确实打破了一些客户端框架,因为它们没有期待。您可以尝试这样做(注意:内部单引号):

<source src="${Model.WebMFilename}" type="video/webm; codecs='vp8, vorbis'" />

希望有所帮助,
罗布

答案 1 :(得分:0)

我设法通过包装单引号获得所需的输出!{“'”}所以

<source src="${Model.WebMFilename}" type=!{"'"}video/webm; codecs="vp8, vorbis"!{"'"} />

渲染

<source src="VP8_645001.webm" type='video/webm; codecs="vp8, vorbis"' />