编译器错误消息:CS1525:无效的表达式术语'}'

时间:2016-03-17 14:06:41

标签: c# razor

我有这段代码给了我错误: “编译器错误消息:CS1525:无效的表达式术语'}'”

错误表示第69行的结束括号:

Line 67:                                                 @ibItem.ToString()
Line 68:                                                 @ibCount++
Line 69:                                             }
Line 70:                                         </div>
Line 71:                                         <!-- Carousel nav -->

代码:

@{int ibCount = 0;}
@foreach (var ibItem in Model.imagePath)
{
       @ibItem.ToString()
       @ibCount++
}

有人可以帮助我解决问题吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

我想你想要将ibItem打印到视图并增加ibCount。在这种情况下,@ symbol不是必需的,因为你进入foreach循环并且你没有写任何标记,所以razor认为他仍然在一个&#34;代码&#34;声明,所以@是多余的。当然,既然现在ibCount是代码,你需要在行尾添加分号。

@{int ibCount = 0;}
@foreach (var ibItem in Model.imagePath)
{
   ibCount++;
   @ibItem.ToString()

}

如果您想要编写计数,我建议执行以下操作(用括号括起值)

@{int ibCount = 0;}
@foreach (var ibItem in Model.imagePath)
{

   @ibItem.ToString()
   @(ibCount++)

}

一个很好的参考如下:

http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/

答案 1 :(得分:1)

你错过了分号。它指向结束括号,因为该字符无效,它必须是表达式的另一个组件或表达式的结尾。

~$ telnet 192.168.10.39 587
Trying 192.168.10.39...
Connected to 192.168.10.39.
Escape character is '^]'.
220 domainchanged.com ESMTP Postfix (Ubuntu)
ehlo domainchanged.com
250-domainchanged.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN