我刚刚开始研究一个项目来接管现有程序员的代码。这是一个相当大的ASP.NET Web页面项目,它使用带有c#的Razor语法。显然代码可以在客户端的机器上运行,但是,当我在本地机器上加载代码时,我会收到一些语法错误。错误似乎表明它认为它错过了我的代码底部的大括号。我已将语法错误缩小到以下代码:
@{
string[] sOption = {"", "0"};
var sDescription = @Id.iDescription;
if (sDescription == null) {}
else {sOption = sDescription.Split('.');}
}
当我将语法更改为:
时 @{
string[] sOption = {"", "0"};
var sDescription = @Id.iDescription;
if (sDescription != null)
sOption = sDescription.Split('.');
}
它有效。
任何想法,为什么这首先导致问题。解析器有问题吗?是否有不同的Razor可以使用。我在想我的客户可能有不同的版本。任何帮助赞赏。感谢。
答案 0 :(得分:0)
此处的第一个示例代码中没有错误。
第二个有错误:
Block statements must be enclosed in "{" and "}"
。
我更改了您的示例代码以包含缺失的变量。
第一个示例在这里工作
var @Id = new { iDescription = (string)null};
string[] sOption = {"", "0"};
var sDescription = @Id.iDescription;
if (sDescription == null) {}
else {sOption = sDescription.Split('.');}
第二个示例语法错误
var @Id = new { iDescription = (string)null};
string[] sOption = {"", "0"};
var sDescription = @Id.iDescription;
if (sDescription != null)
sOption = sDescription.Split('.');