c# – Razor语法错误“只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句”

我在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的值.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...