升级到razor 2/mvc 4后,为什么我的剃刀视图抱怨"}预期"?

Mar*_*ell 19 .net asp.net-mvc razor asp.net-mvc-4

我有一个现有的剃刀1/mvc 3视图,有一些嵌套if- 非常简单,但在升级到razor 2/mvc 4后,它在运行时抱怨并且编译(BuildViews)} expected.它曾经工作得很好.

  • 我已检查所有元素是否格式良好/已关闭
  • 我已经检查过所有{/ }都是平衡的 - 这不是文件结束问题

有什么不对?

Mar*_*ell 40

在剃须刀2/mvc 4升级中修复了许多遗留剃须刀的奇怪之处; 一个有趣的问题是,在剃刀1中,以下是合法的(在代码区域中):

string foo = @Some.Complex.Expression;
Run Code Online (Sandbox Code Playgroud)

请注意,@这是多余的和不正确的,但剃刀1不会抱怨.然而,剃刀2更加挑剔并且混淆,报告} expected错误.该行应替换为:

string foo = Some.Complex.Expression;
Run Code Online (Sandbox Code Playgroud)

这有点微妙,因为发生的错误与大括号(/ )无关,并且可能远离报告的行.{}