我正在使用Razor和几个局部视图处理asp.net mvc 3应用程序。我花了一些时间才意识到在每个HTML标记之后我需要在继续我的代码时添加@
但是在这里我有一个部分视图,它返回一个运行时错误,抱怨缺少关闭}
和可能的原因是它被认为是HTML的一部分。我无法解决,所以我在这里发布:
@model List<DocumentFields>[]
@{
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
{
@(tempColumn++)
</td>
<td>
@field[i].QuestionText
@field[i].FieldValue
}
}
</td>
}
}
我尝试改变视图的结尾:
</td>
@}
@}
因为这两个元素都在HTML元素之后,并且可能被识别为HTML的一部分,但它不能解决问题。
似乎我正在寻找错误的方向。当我改变这样的代码时:
if (field[i].ColumnNo == tempColumn)
{
@field[i].QuestionText
@field[i].FieldValue
}
else
{
@field[i].QuestionText
@field[i].FieldValue
}
它正在工作,但这并没有解决问题,我需要递增索引和's来正确格式化我的输出,我是否错误地使用它们?
答案 0 :(得分:0)
试试这个
@model List<DocumentFields>[]
@{
int tempColumn = 1;
}
<tr>
@foreach (var field in Model)
{
if (field != null)
{
for (int i = 0; i < field.Count; i++)
{ <td>
if (field[i].ColumnNo == tempColumn)
{
@field[i].QuestionText;
@field[i].FieldValue;
}
else
{
@(tempColumn++);
</td>
<td>
@field[i].QuestionText;
@field[i].FieldValue;
}
</td>
}
}
}
</tr>