0

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

4

1 回答 1

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>
于 2013-05-10T14:12:18.020 回答