我在MVC Razor视图中声明了以下语法:
@{
foreach (var speaker in Model)
{
speaker.Name;
}
}
并得到错误
Only assignment,call,increment,decrement,await,and new object expressions can be used as a statement
我可以通过添加@与speaker.Name来纠正;
但为什么呢?对不起,我是Razor的新手,但是当我在代码块@ {}时,为什么我需要再次使用@.即使我没有将它与HTML混合使用?
请帮忙.
如果没有@,剃刀引擎会解释说话者.作为纯粹的C# – 即,只是引用一个
属性,但不对它做任何事情 – 但是不能编译.简单地引用
属性而不
获取或设置其值的语句在C#中无效.
考虑一下这把剃刀
@foreach (var speaker in Model)
{
var name = speaker.Name;
@name
}
第一行是纯C#.它声明一个变量name,并使用speaker.Name的值初始化它.
第二行被解释为剃刀打印指令,它在输出中打印name的值.