如何在不混淆Razor引擎的情况下正确渲染变量?

Eri*_*ond 4 c# asp.net asp.net-mvc templates razor

我正在尝试使用Razor视图引擎渲染CSS(是的,我知道它是为xml风格的语言设计的).

我的模板看起来像:

#@Model.ID {
    top: @Model.Toppx;
    left: @Model.Leftpx;
}
Run Code Online (Sandbox Code Playgroud)

当然,这会失败,因为ToppxLeftpx不是模型的属性,Top而且Left是.我不能放一个空格(例如@Model.Top px;),因为虽然这是从模板的角度来看,但它的无效CSS和Firefox会忽略它.

其他模板语言(Freemarker,Velocity)会支持它:${Model.Top}px;甚至通常的ASP.NET视图引擎支持它:<%=Model.Top%>px;

我怎样才能在Razor中获得这种行为?我试过了, @:<text>@Model.Top</text>px但那不会编译.

我也试过了,@Model.Top@:px;但那也没有用.

注意:我使用的是独立的Razor(在http://razorengine.codeplex.com/上找到)和Mono 2.10

谢谢

RPM*_*984 7

尝试使用括号明确表示代码块:

#@(Model.ID) {
    top: @(Model.Top)px;
    left: @(Model.Left)px;
}
Run Code Online (Sandbox Code Playgroud)