Razor 引擎 if else 语句

kon*_*rad 0 asp.net-mvc razor razorengine

当我使用 Razor Engine 评估模板并且只想打印包含在 If 语句中的整个块时,我真的必须用“@:”标记每一行:

@if(Model.Labels)
{
    @:arcs.append("text")
    @:.attr("transform", function (d) {
        @:var c = arc.centroid(d),
            @:x = c[0],
            @:y = c[1],
            @:// pythagorean theorem for hypotenuse
            @:h = Math.sqrt(x * x + y * y);
        @:return "translate(" + (x / h * labelr) + ',' +
           @:(y / h * labelr) + ")";
    @:})
    @:.attr("dy", ".35em")
    @:.attr("text-anchor", function (d) {
        @:// are we past the center?
        @:return (d.endAngle + d.startAngle) / 2 > Math.PI ?
            @:"end" : "start";
    @:})
    @:.text(function (d) { return d.data.name; });
}
else
{

}
Run Code Online (Sandbox Code Playgroud)

Saa*_*adK 5

总结 Razor 语法:

1-内联表达式以@符号开头,用Html代码编写C#或VB代码。例子:

@VariableName
@DateTime.Now // Return the current datetime in Razor
<p> @DateTime.Now </p>
Run Code Online (Sandbox Code Playgroud)

2- 多语句代码块:编写多个 Razor 语句将它们括在大括号中

  `@{
     Razor Stmts...
   }`
Run Code Online (Sandbox Code Playgroud)

3- 显示代码块中的文本(这就是您所要求的)

您可以根据需要使用@<text> </text>显示文本。例如:

@{
var x = DateTime.Now;
string hello = "Hello Razor!";
<text>The date is:</text> @date <br />
@message                               
}
Run Code Online (Sandbox Code Playgroud)