Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 局部视图不';t返回所有需要的数据_C#_Asp.net Mvc 3_Razor - Fatal编程技术网

C# 局部视图不';t返回所有需要的数据

C# 局部视图不';t返回所有需要的数据,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,我在asp.net MVC 3项目中使用Razor创建的表单遇到了一个奇怪的问题。我的主视图是以下类型的强类型视图: @model List<DataAccess.MCS_DocumentFields> @型号列表 我有四个局部视图,它们在创建表时一个接一个地呈现。这是主视图的代码 <div id="drawForm"> <table border="1"> @for (int i = 0; i < Model.Count()

我在asp.net MVC 3项目中使用Razor创建的表单遇到了一个奇怪的问题。我的主视图是以下类型的强类型视图:

@model List<DataAccess.MCS_DocumentFields>
@型号列表
我有四个局部视图,它们在创建表时一个接一个地呈现。这是主视图的代码

<div id="drawForm">
    <table border="1">
        @for (int i = 0; i < Model.Count(); i++)
        {
            if (Model[i].ContentTypeId == 1)
            {
                headerModel.Add(Model[i]);
            }
            if (Model[i].ContentTypeId == 2)
            {
                drawModel.Add(Model[i]);
            }
            if (Model[i].ContentTypeId == 3)
            {
                bodyModel.Add(Model[i]);
            }
            if (Model[i].ContentTypeId == 4)
            {
                footerModel.Add(Model[i]);
            }
        }
        @Html.Partial("_PartialHeadear", headerModel)
        @Html.Partial("_PartialDrawing", drawModel)
        @Html.Partial("_PartialBody", bodyModel)
        @Html.Partial("_PartialFooter", footerModel)
    </table>
   <button type="submit">Save</button>
</div>

@对于(int i=0;i
我的控制器中应该有20条、25条甚至30条记录:

public ActionResult ActionMethodName(List<MCS_DocumentFields> collection)
        {
            var test = collection;
            List<MCS_Documents> model = DocumentService.All().ToList();
            return View("Index", model);
        }
public ActionResult ActionMethodName(列表集合)
{
var测试=收集;
列表模型=DocumentService.All().ToList();
返回视图(“索引”,模型);
}
但真正发生的是,我只从第一个局部视图中获取数据。大多数时候我只得到10张唱片。我试图改变局部视图的渲染顺序,我总是从第一个局部视图中获得最多10条记录的全部数据,这取决于第二个是哪个。我认为这个数字是10,所以我做了一个测试,用30条记录渲染了一个局部视图,当我第一次渲染它时,我得到了30条记录。所以它不限于10条,但是如果说我的第一个部分有2条记录,第二个部分有12条记录,我得到10条记录,不管怎样,我只从2条记录部分得到1条记录,从12条记录部分得到10条记录。除了这个数字10之外,所有这些似乎都是随机的

下面是我的两个部分,看看我是如何处理它们的:

@model List<DataAccess.MCS_DocumentFields>
    @for (int i = 0; i < Model.Count; i++)
    {
        <tr>
            <td colspan="4" align="center">
                <img src= "@Url.Content("~/Content/" + Model[i].FieldValue)" alt="Logo" />
                @Html.HiddenFor(d => d[i].FieldValue)
                @Html.HiddenFor(d => d[i].QuestionText)
                @Html.HiddenFor(d => d[i].Id)
            </td>
        </tr>
    }
@型号列表
@for(int i=0;id[i].FieldValue)
@Html.HiddenFor(d=>d[i].QuestionText)
@Html.HiddenFor(d=>d[i].Id)
}
这一个有更多的逻辑:

@model List<DataAccess.MCS_DocumentFields>
@{
    int headerCol = 0;    
}
@for (int i = 0; i < Model.Count; i++)
{
                if (headerCol == 0)
                { 
                        @:<tr>
                    }
                    if (Model[i].MCS_Fields.FieldTypeId == 98)
                    {                       
                        <td colspan="2">
                            @*<img src= "@Url.Content("~/Content/" + Model[i].FieldValue)" alt="Logo" />*@
                            @Html.DisplayFor(y => y[i].FieldValue)
                            @Html.HiddenFor(y => y[i].FieldValue)
                            @Html.HiddenFor(y => y[i].Id)
                        </td>
                        ++headerCol;
                    }
                    else if (string.IsNullOrEmpty(Model[i].FieldValue) && Model[i].MCS_Fields.FieldTypeId != 98)
                    {
                        <td colspan="2">
                            @Html.DisplayFor(y => y[i].QuestionText)
                            @Html.HiddenFor(y => y[i].QuestionText)
                            @Html.HiddenFor(y => y[i].FieldValue)
                            @Html.HiddenFor(y => y[i].Id)
                        </td> 
                        ++headerCol;
                    }
                    else
                    { 
                        <td colspan="2">
                            @Html.DisplayFor(y => y[i].QuestionText)
                            @Html.HiddenFor(y => y[i].QuestionText)
                            :
                            @Html.DisplayFor(y => y[i].FieldValue)
                            @Html.HiddenFor(y => y[i].FieldValue)
                            @Html.HiddenFor(y => y[i].Id)
                        </td> 
                        ++headerCol;
                    }

                     if (headerCol == 2)
                     {
                         headerCol = 0;
                        @:</tr>
                     }
}
@型号列表
@{
int headerCol=0;
}
@for(int i=0;iy[i].FieldValue)
@Html.HiddenFor(y=>y[i].FieldValue)
@Html.HiddenFor(y=>y[i].Id)
++校长;
}
else if(string.IsNullOrEmpty(Model[i].FieldValue)&&Model[i].MCS_Fields.FieldTypeId!=98)
{
@DisplayFor(y=>y[i].QuestionText)
@Html.HiddenFor(y=>y[i].QuestionText)
@Html.HiddenFor(y=>y[i].FieldValue)
@Html.HiddenFor(y=>y[i].Id)
++校长;
}
其他的
{ 
@DisplayFor(y=>y[i].QuestionText)
@Html.HiddenFor(y=>y[i].QuestionText)
:
@DisplayFor(y=>y[i].FieldValue)
@Html.HiddenFor(y=>y[i].FieldValue)
@Html.HiddenFor(y=>y[i].Id)
++校长;
}
如果(headerCol==2)
{
headerCol=0;
@:
}
}

对这种奇怪的行为有什么看法吗?我注意到两件奇怪的事情:(1)你的行为真的被命名为
ActionMethodName
?(2) 在
的主视图
上,您正在测试头和绘图的
ContentTypeId==2。是吗?是的,对不起,第一个-是的,这是我的名字(当然是测试名)第二个是错误,应该是1和2,我会修正它。你能检查
模型。计数
属性吗?是的-它保存所有记录,我甚至调试了整个
for
语句,所以每个实例都保存它需要的记录,此外,所有这些都是渲染的,我可以在浏览器中看到,但无法返回数据,或者更具体地说,无法返回整个数据。1。控制器中的模型是MCS\U文档
。在其他任何地方它都是MCS\u DocumentFields
。打字错误2.headerModel、drawModel等的定义是什么?3.你在哪里只看到1或10张唱片?从局部的观点来看?4.为什么在你看来有那么多逻辑?创建一个包含四个集合的视图模型,将它们填充到控制器中,并将其作为模型传递给视图。