This article is currently in the process of being translated into Chinese (~85% done).
IF Statements
在为视图编写前端标记时,定义条件语句是十分有用的。条件语句会决定视图中的代码是否被解释以及视图中的内容是否被渲染。最常见的条件语句就是if语句。你可以像在C#中那样,在你的Razor代码中使用下列if语句之一——只需要指定Razor运算符(@符号)就行了。
if 语句
下面是在Razor中使用if语句的一个简单例子——请记住,你可以直接在视图中定义该语句,并同时编写常规HTML代码。
@if(DateTime.Now.Year == 2042)
{
<span>The year 2042 has finally arrived!</span>
}
如你所见,上述例子仅仅是在C#代码中混入了HTML标记。你应该已经察觉到了两件事。首先,在常规的C#语法中,我可以把if语句下方的两个花括号给省略掉,因为该判定条件下只有一行代码/标记。但这在Razor中是不被允许的——无论你的控制结构下面有几行代码, 它们都应该被一对花括号括住。其次,你注意到我直接从C#代码切换到了HTML标记。这是可行的,因为转换器可以很容易理解HTML标签和C#代码之间的区别。另一方面,如果我只写了一行文本,而没写任何HTML标签,转换器就不知道我写的到底是什么代码了。对于这种情况,你可以使用<text>标签,我们在之前的文章中已经介绍过了。
if-else 语句
当C#代码中存在了一条"if"语句,那么它的后面通常也会跟一条"else"语句,在Razor中也是这样的。你可以像在C#中那样,在Razor中创建一个if-else语句。看看下面的例子:
@if(DateTime.Now.Year >= 2042)
{
<span>The year 2042 has finally arrived!</span>
}
else
{
<span>We're still waiting for the year of 2042...</span>
}
总结
在Razor中使用if语句非常简单,就像在C#中那样。将if语句与其它C#语言中的结构组合使用,例如循环,会使Razor成为你的ASP.NET MVC页面的强大模版引擎。