[英]The closing braces of my C# code are not recognized in a Razor partial view
我正在開發一個asp.net mvc 3應用程序。 我使用Razor表示意見。 我在星期五遇到這個問題,並以為我已解決它,但是現在我看到這只是一個私人案例,由於某些原因,這些事情起作用了。
我有一個包含四列的表,但是每一行在一個單元格中可能具有不同數量的字段,因此我正在研究某種算法,該算法將用屬於它們的所有信息填充我的單元格。 這就是我現在所擁有的:
@{
int tempColumn = 1;
}
<tr>
@foreach (var field in Model)
{
if (field != null)
{
<td>
@for (int i = 0; i < field.Count; i++)
{
if (field[i].ColumnNo == tempColumn)
{
@field[i].QuestionText;
@field[i].FieldValue;
}
else if (field[i] != null)
{
tempColumn++;
@:</td>
@:<td>
@field[i].QuestionText;
@field[i].FieldValue;
}
}
}
@:</td>
}
</tr>
基本上,這個想法是,無論@field[i].QuestionText;
多少對@field[i].QuestionText;
/ @field[i].FieldValue;
我要在行的開頭始終有一個<td>
標記,在行的末尾有一個</td>
標記。 我的算法也有問題,但是在解決無法識別的閉合手環之前,我無法繼續。 那么錯誤是什么-當我嘗試在調試模式下運行此代碼時,出現此錯誤:
foreach塊缺少結束符“}”。 確保此塊中所有“ {”字符都有一個匹配的“}”字符,並且沒有“}”字符被解釋為標記。
但是,當我進入代碼本身時,會遇到關於if
塊和for
塊的相同錯誤。 我以為使用這種語法- @:
插入HTML <td>
和</td>
標簽會保留我的C#代碼的結構,只是將標簽添加到我想要的位置,但是從我看來,似乎有些原因至少要解釋一個<td>
或</td>
標記,以便將其后的所有內容識別為HTML標記,而不是C#代碼。 那么在C#方法中插入HTML標記的正確方法是什么,或者如果錯誤是由其他原因引起的,那可能是什么呢?
聚苯乙烯
關於算法的任何幫助將不勝感激,盡管這不是此問題的主題。
更改
}
}
}
@:</td>
}
</tr>
至
}
}
</td>
}
}
</tr>
您可以在if (field != null)
內開始<td>
,因此也應在其中結束,否則,如果field == null
則將得到<tr></td></tr>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.