TOC

This article is currently in the process of being translated into Chinese (~72% done).

Razor:

The switch statement

之前,我们在Razor代码中使用了if语句来控制代码的执行流程,但它们并不是你在Razor代码中唯一可使用的条件语句。还有一种选择,也就是switch语句。你可能已经从C#或者是其它的编程语言中知晓了这种结构,但在本文中,我们将一起来看看如何在Razor代码中使用这种结构。

switch语句的工作原理是:先定义一个用于判断的条件,然后定义一个或几个满足这种条件的可能的结果。例如,如果我们在一个变量中存储了一个由用户指定的数字,然后我们想要根据这个变量来生成不同的结果,看起来就像下面这样:

switch(number)
{
	case 1:
		// Do something for number 1
	break;
	case 42:
		// Do something for number 42
		break;
}

Razor中的switch语句看起来和C#的很像,但它们之间有一个非常重要的不同之处:在Razor中,你可以直接在你的case代码块中包含HTM标记,这就使你可以很容易地在每个case条件下输出HTML标记和文本。此外,除非你当前已经位于Razor代码块中(也就是@{ 你的代码 }),否则你就需要使用@来显示地声明switch关键字,就像我们在前面的例子所见到的那样。下面是一个完整的switch使用示例:

@switch(DateTime.Now.DayOfWeek)
{
    case DayOfWeek.Monday:
        <span>Uh-oh...</span>
		break;
	case DayOfWeek.Friday:
		<span>Weekend coming up!</span>
		break;
	case DayOfWeek.Saturday:
	case DayOfWeek.Sunday:
		<span>Finally weekend!</span>
		break;
	default:
		<span>Nothing special about this day...</span>
		break;
}

在此例中,我们查看了DateTime.Now结构中的DayOfWeek属性。它可以让我们知道当前是哪一天,然后我们就可以根据该信息来采取一些措施。我在此示例中描绘了使用case语句的几种方法:例如,当是Monday(星期一)Friday(星期五)这两种情况的时候,我们让其输出指定的结果。然后我们让Saturday(星期六)Sunday(星期日)这两种情况使用相同的代码块(都指向了同一输出结果,这也是switch语句的一个很不错的功能)。最后,我们使用了default关键字,来捕获所有上述的特殊情况以外的其它情况,然后给出输出结果。

总结

在许多编程语言中,使用switch语句都作为替代大量if语句的一种优雅方案。幸运的是,Razor代码也支持使用switch语句。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!