如何正确渲染变量而不混淆 Razor 引擎?
我正在尝试使用 Razor 视图引擎渲染 CSS(是的,我知道它是为 xml 样式语言设计的)。
我的模板如下所示:
#@Model.ID {
top: @Model.Toppx;
left: @Model.Leftpx;
}
当然这会失败,因为 Toppx
和 Leftpx
不是模型的属性,Top
和 Left
是。我不能添加空格(例如 @Model.Top px;
),因为虽然从模板角度来看这是可行的,但其无效的 CSS 和 Firefox 会忽略它。
其他模板语言(Freemarker、Velocity)会支持它,例如:${Model.Top}px;
,甚至常见的 ASP.NET 视图引擎也支持它,例如:<%=Model. Top%>px;
如何在 Razor 中获得此行为?我试过: @:
但这无法编译。
我也尝试过: @Model.Top@:px;
但这也不起作用。
注意:我将独立的 Razor(可在 http://razorengine.codeplex.com/ 找到)与 Mono 一起使用2.10
谢谢
I am trying to render CSS using the Razor view engine (yes, I know it was designed for xml-style languages).
My template looks like:
#@Model.ID {
top: @Model.Toppx;
left: @Model.Leftpx;
}
Of course this fails because Toppx
and Leftpx
arent properties of the model, Top
and Left
are. I cant put a space (eg @Model.Top px;
) because while this works from a templating perspective, its invalid CSS and Firefox ignores it.
Other templating languages (Freemarker, Velocity) would support it like: ${Model.Top}px;
and even the usual ASP.NET view engine supports it like: <%=Model.Top%>px;
How can I get this behaviour in Razor? I tried:@:<text>@Model.Top</text>px
but that wouldnt compile.
I also tried: @Model.Top@:px;
but that didnt work either.
Note: I am using the standalone Razor (found at http://razorengine.codeplex.com/) with Mono 2.10
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试用括号显式表达代码块:
Try explicitly expressing the code block with brackets: