MVC 3 到 MVC 4 剃刀编译器错误
本文关键字:MVC 编译器 错误 剃刀 | 更新日期: 2023-09-27 17:56:50
我收到运行时错误,说我缺少一个结束括号。错误发生在我设置电子邮件文本的行上
此代码适用于 MVC 3,但不适用于 MVC 4。我知道新的 Razor 更严格,但从语法上讲,这段代码看起来仍然正确。所有括号都匹配,等等。
有什么想法吗?
@if (Model.Counselors != null)
{
for (var i = 0; i < Model.Counselors.Count; i++)
{
string counselorDivId = "counselorname" + i.ToString();
string deleteLink = "<a class='"icon delete counselor'" data-attr-divid='"" + @counselorDivId + "'" data-attr-id=" + @Model.Counselors[i].Id + " style='"float:right;'"></a>";
string emailText = (!String.IsNullOrEmpty(Model.Counselors[i].CounselorContactEmail) ? (Model.Counselors[i].CounselorContactEmail.Length < 29 ? Model.Counselors[i].CounselorContactEmail : "Email " + Model.Counselors[i].CounselorContactName) : "");
}
}
奇怪的是,但我想从逻辑上讲,嵌套的"@"炸毁了 MVC 4/Razor 2。通过删除嵌套的"@"前缀,代码已成功解析并执行
@if (Model.Counselors != null)
{
for (var i = 0; i < Model.Counselors.Count; i++)
{
string counselorDivId = "counselorname" + i.ToString();
string deleteLink = "<a class='"icon delete counselor'" data-attr-divid='"" + counselorDivId + "'" data-attr-id=" + Model.Counselors[i].Id + " style='"float:right;'"></a>";
string emailText = (!String.IsNullOrEmpty(Model.Counselors[i].CounselorContactEmail) ? (Model.Counselors[i].CounselorContactEmail.Length < 29 ? Model.Counselors[i].CounselorContactEmail : "Email " + Model.Counselors[i].CounselorContactName) : "");
}
}
试试
@(if (Model.Counselors != null)
{
for (var i = 0; i < Model.Counselors.Count; i++)
{
string counselorDivId = "counselorname" + i.ToString();
string deleteLink = "<a class='"icon delete counselor'" data-attr-divid='"" + @counselorDivId + "'" data-attr-id=" + @Model.Counselors[i].Id + " style='"float:right;'"></a>";
string emailText = (!String.IsNullOrEmpty(Model.Counselors[i].CounselorContactEmail) ? (Model.Counselors[i].CounselorContactEmail.Length < 29 ? Model.Counselors[i].CounselorContactEmail : "Email " + Model.Counselors[i].CounselorContactName) : "");
}
})
以"字符串电子邮件文本..."开头的最后一行似乎存在问题。 出于某种原因,剃刀不喜欢三元语句中的小于号。 当我将其切换为大于符号时,它看起来有效。 我不确定这是否是剃须刀中的错误。