剃刀 – 将MVC3应用程序迁移到MVC4:编译器错误消息:CS1513:}预期

这是一个非常奇怪的错误,我认为这可能是一个剃刀错误.我使用的是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进行严格解析.

如果您没有以正确的方式使用剃刀语法,那么在将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 }

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...