20

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

  • 我检查了所有元素是否格式正确/已关闭
  • 我检查了所有{/}是否平衡 - 这不是文件结尾问题

有什么问题?

4

1 回答 1

42

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

string foo = @Some.Complex.Expression;

注意@有多余的和不正确的,但是剃须刀1没有抱怨。但是,razor 2 比较挑剔,比较糊涂,} expected报错。此行应替换为:

string foo = Some.Complex.Expression;

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

于 2012-09-07T11:58:30.890 回答