Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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# 具有重复局部视图的MVC5表单_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 具有重复局部视图的MVC5表单

C# 具有重复局部视图的MVC5表单,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有一个MVC表单,其中我必须循环遍历数据库记录集,并继续显示包含数据的部分视图 这是一个输入表单。也就是说,如果数据库包含50条记录,每条记录都有“FirstName”,我该如何处理?将有50个“FirstName”输入字段 我正在使用实体框架。我过去没有使用过这种模式,也不确定在MVC5下如何正确处理这种模式 父类接收这些内容的列表,然后循环并显示包含表单的局部视图。BeginForm()位于父视图中。分部从列表中获取单个对象,用作表单字段 我的问题涉及在服务器上处理这个问题的handle,

我有一个MVC表单,其中我必须循环遍历数据库记录集,并继续显示包含数据的部分视图

这是一个输入表单。也就是说,如果数据库包含50条记录,每条记录都有“FirstName”,我该如何处理?将有50个“FirstName”输入字段

我正在使用实体框架。我过去没有使用过这种模式,也不确定在MVC5下如何正确处理这种模式

父类接收这些内容的列表,然后循环并显示包含表单的局部视图。BeginForm()位于父视图中。分部从列表中获取单个对象,用作表单字段


我的问题涉及在服务器上处理这个问题的handle,也就是在HttpPost方法中。我是否具有处理传递给父视图的原始列表对象的功能?是否会自动包含对其中包含的每个子对象的所有更新?

假设您有一个局部视图,其中包含以下内容:

@model string
<label for="name">First Name:</label>
<input type="text" readonly="readonly" id="name" value="@Model" />

正如Stephen Murke所建议的那样,答案就是为自定义对象使用EditorTemplate

因此,现在父视图仅包含:

@Html.EditorFor(m => m.HistoryDetail)
其中m.HistoryDetail是一个列表。我只是将该部分移动到EditorTemplates子文件夹中,并将其重命名以匹配对象名称

MVC框架负责剩下的部分,我得到的HTML具有列表中每个项目的唯一ID和名称:


审批级别的注释

信息不足,无法回答此问题。你是保存每件物品还是整个团队?我需要保存整个团队。我进行编辑是为了解释父/部分关系是如何设置的。您需要使用
EditorTemplate
,以便表单控件使用索引器正确命名,并在发布时绑定到您的集合。Blah。我希望避开那条路线。我会查出来的,谢谢。@Patrick,你为什么希望避开那条路线?这只意味着将您的部分内容放入
/Views/Shared/EditorTemplates
文件夹,并根据您的类名重命名它。然后,在主视图中,它只是
@EditorFor(m=>m)
——它的代码比您当前的代码要少。这就是我如何拥有它的,就如何在客户端上显示而言,它都能完美地工作。我的问题是如何在HttpPost方法的服务器上处理这个问题,因为存在重复的部分。我是否只传递回父视图接收的原始列表?@Patrick否,您只传递表单中的值,即部分视图中的值,而不是所有部分中的值。如果父视图中有@Html.BeginForm(),我希望HttpPost的参数是什么?它必须是一个列表,否则我将无法获得从所有部分进入数据库所需的全部50条记录。
@Html.EditorFor(m => m.HistoryDetail)
<textarea class="form-control" cols="25" id="HistoryDetail_2__ReferralComments" name="HistoryDetail[2].ReferralComments" rows="5" style="max-width: 100%; width: 100 %;">
    Comments for the Approval Level
</textarea>
<span class="field-validation-valid" data-valmsg-for="HistoryDetail[2].ReferralComments" data-valmsg-replace="true"></span>