我正在开发一个 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].FieldValue;
我总是在行的开头有一个开始<td>
标签,在行</td>
的末尾有一个结束标签。我的算法也有问题,但在解决无法识别的闭合手镯问题之前,我无法继续。那么错误是什么 - 当我尝试在调试模式下运行此代码时,我收到此错误:
foreach 块缺少结束“}”字符。确保此块中的所有“{”字符都有一个匹配的“}”字符,并且没有一个“}”字符被解释为标记。
但是当我转到代码本身时,我得到了关于if
块和for
块的相同错误。我认为使用这种语法插入 HTML<td>
和标签 -将保持我的 C# 代码的结构,并在我想要它们的地方添加标签,但从我认为似乎某些原因,至少一个或标签被解释,所以一切在它被识别为 HTML 标记而不是 C# 代码之后。那么在 C# 方法中插入 HTML 标记的正确方法是什么,或者如果错误是由其他原因引起的 - 它可能是什么?</td>
@:
<td>
</td>
附言
尽管这不是该问题的主题,但有关该算法的任何帮助将不胜感激。