【问题标题】:Can Razor code blocks output to a view?Razor 代码块可以输出到视图吗?
【发布时间】:2016-05-19 19:22:21
【问题描述】:
我在 Razor 中看到过这样的示例:
@{
if(something == true)
{
<p>This</p>
}
else
{
<p>That</p>
}
}
我认为 Razor 代码块不应该向视图输出任何内容,而使用 @() 定义的表达式就是为此。那么这怎么可能呢?
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
asp.net-mvc-4
razor
【解决方案1】:
您可以在this page中找到有关这两种表达式的详细信息
语句@()被称为显式表达式,上面的链接是这样描述的:
当你想做某事时,应该使用明确的印象
否则可能会使解析器感到困惑。例如,如果您需要
访问字符串中间的变量,或者如果你想这样做
计算/修改输出。
语句@{}称为多语句代码块。上面的链接是这样描述的:
Razor 代码块以 @-character 和
{-字符并以 } 字符结尾。在这里面,你是
现在正在编写 C# 代码。
简短的回答是可以使用多语句块并且经常用于呈现一些 HTML。当编译器可能会混淆 HTML 和 C# 代码时,您需要使用显式表达式 (@())。