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

时间:2011-05-18 10:07:41

标签: c# asp.net asp.net-mvc templates razor

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

我的模板如下:

#@Model.ID {
    top: @Model.Toppx;
    left: @Model.Leftpx;
}

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

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

如何在Razor中获得此行为?我试过了: @:<text>@Model.Top</text>px但那不会编译。

我也尝试过:@Model.Top@:px;但这也没有用。

注意:我使用独立剃刀(在http://razorengine.codeplex.com/找到)和Mono 2.10

由于

1 个答案:

答案 0 :(得分:7)

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

#@(Model.ID) {
    top: @(Model.Top)px;
    left: @(Model.Left)px;
}