部分视图无法识别我的C#代码中的某些符号

时间:2013-05-10 14:02:19

标签: html asp.net-mvc-3 razor

我正在使用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来正确格式化我的输出,我是否错误地使用它们?

1 个答案:

答案 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>