Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 在局部视图中编辑集合_Asp.net Mvc 3_Entity Framework 4.3_Entity Framework Migrations - Fatal编程技术网

Asp.net mvc 3 在局部视图中编辑集合

Asp.net mvc 3 在局部视图中编辑集合,asp.net-mvc-3,entity-framework-4.3,entity-framework-migrations,Asp.net Mvc 3,Entity Framework 4.3,Entity Framework Migrations,我在更新对象的子集合时遇到问题,此问题已通过以下指南解决: 清理代码时,我将集合编辑移到了局部视图 @Html.Partial("_AttendeeInformationFields", Model.CaptureAttendeeInformationFields) 局部视图如下所示 @model ICollection<EventModel.Models.AttendeeInformationField> <table id="CaptureAttendeeInformat

我在更新对象的子集合时遇到问题,此问题已通过以下指南解决:

清理代码时,我将集合编辑移到了局部视图

@Html.Partial("_AttendeeInformationFields", Model.CaptureAttendeeInformationFields)
局部视图如下所示

@model ICollection<EventModel.Models.AttendeeInformationField>
<table id="CaptureAttendeeInformationFields">
    <tr>
        <th>@Html.GetDisplayName(model => model.FirstOrDefault().Name)</th>
        <th>@Html.GetDisplayName(model => model.FirstOrDefault().Required)</th>
        <th>@Html.GetDisplayName(model => model.FirstOrDefault().FieldType)</th>
        @*<th>@Html.GetDisplayName(model => model.FirstOrDefault().InputType)</th>*@
    </tr>
    @Html.EditorForModel()
</table>
@Html.LinkToAddNestedForm("Lägg till", "#CaptureAttendeeInformationFields", ".AttendeeInformationField", "CaptureAttendeeInformationFields", typeof(EventModel.Models.AttendeeInformationField))
@Html.ValidationMessageFor(model => model)
@model EventModel.Models.AttendeeInformationField
<tr class="AttendeeInformationField">
@using (Html.BeginCollectionItem("CaptureAttendeeInformationFields"))
{
    <td>@Html.TextBoxFor(model => model.Name) @Html.HiddenFor(model => model.MagnetEventId) @Html.HiddenFor(model => model.Id)</td>
    <td>@Html.CheckBoxFor(model => model.Required)</td>
    <td>@Html.DropDownListFor(model => model.FieldType, new SelectList(Enum.GetValues(typeof(EventModel.Models.FieldType)), Model.FieldType))</td>
    @*<td>@Html.TextBoxFor(model => model.InputType)</td>*@
}
</tr>
我一点也不喜欢,但它很管用。一定有更好的办法

foreach (var attendeeInformationField in viewModel.AttendeeInformationFields)
        {
            var attendeeInformationFieldId = attendeeInformationField.Id;
            var originalAttendeeInformationField = original.CaptureAttendeeInformationFields.FirstOrDefault(aif => aif.Id == attendeeInformationFieldId);
            if (originalAttendeeInformationField==null)
            {
                original.CaptureAttendeeInformationFields.Add(attendeeInformationField);
            }
            else
            {
                if (originalAttendeeInformationField != attendeeInformationField)
                {
                    originalAttendeeInformationField = attendeeInformationField;
                    originalAttendeeInformationField.FieldType = attendeeInformationField.FieldType;
                    //originalAttendeeInformationField.InputType = attendeeInformationField.InputType;
                    originalAttendeeInformationField.Name = attendeeInformationField.Name;
                    originalAttendeeInformationField.Required = attendeeInformationField.Required;
                }
            }
        }