这是一个非常奇怪的错误,我认为这可能是一个剃刀错误.我使用的是VS 2012,MVC4,Framework 4.5.
按照以下说明:http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806
我创建了一个新的MVC4项目,然后我从MVC3项目复制了我的所有代码(控制器,视图,视图模型).
Eveything工作得很好,直到我测试了一个具有自定义帮助器的View,其中有一个foreach,一个开关,三个if语句,然后我也在其他一些定制帮助器中调用.
这两个项目的代码完全一样,在MVC3中它可以工作,但在MVC4中,它显示了这个消息:
Compiler Error Message: CS1513: } expected
所以我尝试添加一个大括号,但它显示相同的错误,所以我继续添加括号,它不会停止告诉我一样的事情.
我去搜索这个问题,但我刚刚发现这个问题没有回答:
http://www.1771.in/asp-net-mvc-4-issues-migrating-mvc3-view-in-vs-2012-rc.html
有人经历过这个问题吗?
解决方法
MVC4的剃刀解析器与MVC3不同.
Razor v3具有高级解析器功能,另一方面与MVC3进行严格解析.
Razor v3具有高级解析器功能,另一方面与MVC3进行严格解析.
如果您没有以正确的方式使用剃刀语法,那么在将MVC3转换为MVC4时,可能会遇到语法错误.
Razor v2中不允许使用一些常见的剃刀代码错误的解决方案是:
– >避免在视图中使用服务器块,除非有变量声明部分.
Don’t : @{if(check){body}} Recommended : @if(check){body}
– >当您已经在服务器范围内时,避免使用@.
Don’t : @if(@variable) Recommended : @if(variable) Don't : @{int a = @Model.Property } Recommended : @{int a = Model.Property }