繁体   English   中英

MVC5表单,包含重复的部分视图

[英]MVC5 Form with repeating partial views

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

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

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

父类接收这些东西的List <>然后循环并显示包含该表单的部分视图。 BeginForm()位于父视图中。 partials从List <>中获取单个对象以用作表单字段。

我的问题涉及在服务器上处理这个问题的句柄,这意味着在HttpPost方法中。 我有没有处理传递给父视图的原始List <>对象? 是否会自动包含所有包含在其中的子对象的更新?

答案,正如Stephen Murke所推荐的那样,只是为自定义对象使用EditorTemplate。

所以现在父视图很简单:

@Html.EditorFor(m => m.HistoryDetail)

其中m.HistoryDe​​tail是List <>。 我只是将部分移动到EditorTemplates子文件夹中,并将其重命名为与对象名称匹配。

MVC框架负责其余部分,我得到的结果是HTML,它具有List <>中每个项目的唯一ID和名称:

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

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

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

这个局部视图应该包含在一个视图中,在这个视图中你将传递一个模型,它的属性将是一个名字列表。 然后你只需写一个foreach:

@foreach(var firstName in Model.FirstNames)
{
    @Html.PartialView("_NameOfYourPartialView", firstName)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM