2
我已经做了这方面的一些研究,似乎发现是过期或在我的情况不太工作岗位。我虽然可以在搜索时使用错误的关键词... =/MVC 4绑定列表的嵌套列表导致
在我的网页我有一个包含包含行又包含项目组盒标签。 所以它是列表4个级别的列表。
问题:
当回发,ViewModel.Tabs为空,我不能保存任何。 所有内容都显示得非常好,但没有任何内容可以发回。
代码
查看/共享/ EditorTemplates/Tab.cshtml
@model AWMCCRM.Web.ViewModels.Tab
@Html.HiddenFor(vm => vm.Name)
<div id="[email protected](" ", string.Empty)" class="tab-content two">
@Html.EditorFor(vm => vm.Groups)
</div>
查看/共享/ EditorTemplates/Group.cshtml
@model AWMCCRM.Web.ViewModels.Group
@Html.HiddenFor(vm => vm.Name)
<fieldset>
<legend>@Model.Name</legend>
@Html.EditorFor(vm => vm.Lines)
</fieldset>
查看/共享/EditorTemplates/Line.cshtml
@model AWMCCRM.Web.ViewModels.Line
<div class="_100Max">
@Html.HiddenFor(vm => vm.Name)
@Html.EditorFor(vm => vm.Items)
</div>
查看/共享/ EditorTemplates/Item.cshtml
@model AWMCCRM.Web.ViewModels.Item
<div class="[email protected]" title="@Model.Description">
<p>
@Html.HiddenFor(x => x.DataType)
@Html.HiddenFor(x => x.Description)
@Html.HiddenFor(x => x.DisplaySize)
@Html.HiddenFor(x => x.DisplayType)
@Html.HiddenFor(x => x.IDsPiped)
@Html.HiddenFor(x => x.ItemType)
@Html.HiddenFor(x => x.Name)
@Html.LabelFor(vm => vm.Value, Model.Name)
@switch (Model.DisplayType.ToLower().Replace(" ", string.Empty))
{
case "checkbox":
@Html.CheckBoxFor(vm => Convert.ToBoolean(vm.Value))
break;
case "dropdownlist":
@Html.DropDownListFor(vm => vm.Value, Model.ValueOptionListItems)
break;
case "multiselectlist":
@Html.ListBoxFor(
x => x.SelectedValueList,
Model.ValueOptionListItems,
new { id = "itemValuesMultiSelect", multiple = "multiple", Size = 15 })
break;
case "radiobutton":
@Html.RadioButtonFor(vm => vm.Value, Model.Value)
break;
case "textarea":
@Html.TextAreaFor(vm => vm.Value)
break;
default:
@Html.TextBoxFor(vm => vm.Value)
break;
}
</p>
</div>
的视图模型(削减版本)
namespace AWMCCRM.Web.ViewModels
{
public class PersonEditViewModel
{
public List<Tab> Tabs { get; set; }
//Other properties
//...
}
}
的视图(削减版本)
@using (Html.BeginForm("Edit", "Person", FormMethod.Post, new { id = "validate-form", @class = "block-content form" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(x => x.PersonID)
@foreach (var tab in Model.Tabs)
{
@Html.EditorFor(vm => tab)
}
<input class="close-toolbox button" type="submit" value="Save">
}
有什么建议?
感谢
完美!它的工作原理,谢谢。 – PostureOfLearning