加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:58:16 所属栏目:asp.Net 来源:网络整理
导读:这是一个非常奇怪的错误,我认为这可能是一个剃刀错误.我使用的是VS 2012,MVC4,Framework 4.5. 按照以下说明:http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 我创建了一个新的MVC4项目,然后我从MVC3项目复制了我的所有代码(控制器,视图,
这是一个非常奇怪的错误,我认为这可能是一个剃刀错误.我使用的是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 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读