我正在尝试使用 Spark 视图引擎发出一个文字美元符号、打开大括号、文本和关闭大括号。如何让 Spark 发出${Hello}
,而不是尝试评估变量名Hello
?我能想到的最好的是${'$'}{Hello}
,但这似乎太复杂而且难以阅读。
对于上下文,我将 Spark 用作 ASP.NET MVC 视图引擎,但我也将其用作模板引擎,因此(高级)我的应用程序用户可以在文本区域中键入简单的 Spark 视图并保存它呈现电子邮件等。
谢谢!
我正在尝试使用 Spark 视图引擎发出一个文字美元符号、打开大括号、文本和关闭大括号。如何让 Spark 发出${Hello}
,而不是尝试评估变量名Hello
?我能想到的最好的是${'$'}{Hello}
,但这似乎太复杂而且难以阅读。
对于上下文,我将 Spark 用作 ASP.NET MVC 视图引擎,但我也将其用作模板引擎,因此(高级)我的应用程序用户可以在文本区域中键入简单的 Spark 视图并保存它呈现电子邮件等。
谢谢!
有两种方法可以转义 Spark 代码表达式:
这可以通过对每种表达式类型使用三个转义字符之一来完成。下面不是解释,而是一个示例,说明如何在 Spark 视图中执行此操作:
<div>
$${Encoded.Escaped.with.a.dollar < 0}
\${Encoded.Escaped.with.a.backslash < 0}
`${Encoded.Escaped.with.a.backtick < 0}
</div>
<div>
!!{Unencoded.Escaped.with.a.dollar < 0}
\!{Unencoded.Escaped.with.a.backslash < 0}
`!{Unencoded.Escaped.with.a.backtick < 0}
</div>
<div>
$$!{Encoded.Silent.Nulls.Escaped.with.a.dollar < 0}
\$!{Encoded.Silent.Nulls.Escaped.with.a.backslash < 0}
`$!{Encoded.Silent.Nulls.Escaped.with.a.backtick < 0}
</div>
导致以下逐字输出:
<div>
${Encoded.Escaped.with.a.dollar < 0}
${Encoded.Escaped.with.a.backslash < 0}
${Encoded.Escaped.with.a.backtick < 0}
</div>
<div>
!{Unencoded.Escaped.with.a.dollar < 0}
!{Unencoded.Escaped.with.a.backslash < 0}
!{Unencoded.Escaped.with.a.backtick < 0}
</div>
<div>
$!{Encoded.Silent.Nulls.Escaped.with.a.dollar < 0}
$!{Encoded.Silent.Nulls.Escaped.with.a.backslash < 0}
$!{Encoded.Silent.Nulls.Escaped.with.a.backtick < 0}
</div>
您可以使用新的<ignore>
特殊标签逐字输出块内的任何内容,如下所示:
<html>
<head>
<title>ignore test</title>
</head>
<body>
<h1>ignore test</h1>
<p>${System.DateTime.Now}</p>
<ignore>
<div>
Regular text ${This.isnt.code < 0}
<var dummy="This isn't a variable" />
</div>
</ignore>
</body>
</html>
希望有帮助,
罗布