我花了45分钟寻找失踪的关闭“}”,我找不到它。我重写了代码,我仍然得到这个错误。我做错了什么?
分析程序错误消息: foreach块缺少结束“}”字符。确保此块中的所有“{”字符都有匹配的“}”字符,并且没有任何“}”字符被解释为标记。
第9行:@foreach(模型中的var项目){
@foreach (var item in Model) {
int checkId = item.Id;
if (item.ReplyId == checkId){
<div>
<h4>Forum</h4>
<hr />
<div class="panel panel-default">
<div class="panel-heading">
@Html.DisplayFor(modelItem => item.Title)
</div>
<div class="panel-body">
@Html.DisplayFor(modelItem => item.Body)
</div>
</div>
}
}
@foreach(var item2 in Model)
{
if(item2.ReplyId == checkId){
<div class="panel panel-default">
</div>
<div class="panel-body">
@Html.DisplayFor(modelItem => item2.Body)
</div>
</div>
}
}
<p>
@if (Request.IsAuthenticated)
{
string user = item.User;
if (User.Identity.Name == user)
{
<p>@Html.ActionLink("Edit", "Edit", new { id = checkId }) |</p>
<p>@Html.ActionLink("Reply", "Reply", new { id = checkId }) |</p>
}
@Html.ActionLink("Back to List", "Index")
}
答案 0 :(得分:2)
您必须在@ {}括号中包含长闭包。我相信这是你的问题:
@if (Request.IsAuthenticated) {
//...
}
尝试:
@{
if(Request.IsAuthenticated) {
//...
}
}
使用<text></text>
标记
答案 1 :(得分:1)
你错过了一个结束“/ div”在这段代码中:@ Html.DisplayFor(modelItem =&gt; item2.Body)。这可能是它出错的原因。
答案 2 :(得分:0)
这是第一个区块中未关闭的div
,第二个区块中的额外结束/div
。剃刀对这种事情非常挑剔。
修复后,您会遇到其他一些语法问题,例如item
未在第三个区块中定义,但您应该可以处理这些问题。