无涯教程-ASP.NET - Razor Code Blocks

39 阅读1分钟

代码块(Code Blocks)用于封装C#代码语句。它以@(At)字符开头,并用{}(花括号)括起来。与表达式不同,代码块中的C#代码不会呈现。代码block中的默认语言是C#,但是无涯教程可以转换回HTML语言。代码blocks中的超文本标记语言将呈现为超文本标记语言。

示例

//Index.cshtml

@{
    Layout = null;
    var name = "John";
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <h2>My name is: @name </h2>
</body>
</html>

它会产生以下输出。

ASP Razor code blocks 1

C#是Razor代码块的默认语言。在代码块中编写的超文本标记语言被呈现为超文本标记语言,这称为隐式转换。Razor代码阻止隐式转换HTML代码并呈现到视图页面。

在下面的代码中,编写了HTML,并且执行时没有错误。

//Index.cshtml

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
@{
    var name = "Learnfk";
    <h4>Welcome to the @name </h4>
}
</body>
</html>

它会产生以下输出。

ASP Razor code blocks 2

有时,当无涯教程定义应该呈现HTML语言的代码的子节时,使用Razor<text>标记将要呈现的字符括起来。

它被强制使用Text标记。否则,它将抛出编译时错误。请参见以下代码。

//Index.cshtml

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
@for (var i = 0; i < 5; i++)
{
    <text>i= @i </text> <br/>
}
</body>
</html>

它会产生以下输出。

ASP Razor code blocks 3

参考链接

www.learnfk.com/asp.net_mvc…