非常感谢您这么快回复我。我终于找到了解决方案,这是我的类定义:
public partial class ClasseAmodel
{
public int id { get; set; }
public string label { get; set; }
}
public partial class ClasseBmodel
{
public List<ClasseAmodel> classeA { get; set; }
}
public partial class ClasseCmodel
{
public List<ClasseBmodel> classeB { get; set; }
}
我的 ClasseCmodel 创建视图:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Create</legend>
@Html.EditorFor(Model => Model.classeB)
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
我的编辑器模板:
@model MetaCrud.Models.ClasseAmodel
<p>
@Html.LabelFor(model => model.id)
@Html.TextBoxFor(model => model.id)
@Html.ValidationMessageFor(model => model.id)
</p>
<p>
@Html.LabelFor(model => model.label)
@Html.TextBoxFor(model => model.label)
@Html.ValidationMessageFor(model => model.label)
</p>
@model MetaCrud.Models.ClasseBmodel
<p>
@Html.EditorFor(Model => Model.classeA)
</p>
我的 ClasseCmodelController 创建方法:
// GET: /ClasseCmodel/Create
public ActionResult Create()
{
var model = new ClasseCmodel();
classeB = new List<ClasseBmodel>();
var b = new ClasseBmodel();
b.classeA = new List<ClasseAmodel>();
var a = new ClasseAmodel();
a.id = 1;
a.label = "1";
b.classeA.Add(a);
a = new ClasseAmodel();
a.id = 2;
a.label = "2";
b.classeA.Add(a);
classeB.Add(b);
classeC = new List<ClasseCmodel>();
return View(model);
}
// POST: /ClasseCmodel/Create
[HttpPost]
public ActionResult Create(ClasseCmodel model, FormCollection collection)
{
return View(model);
}
在最后一种方法中,我恢复了整个对象集,尤其是 ClasseAmodel 对象:
id = 1;
label = "1";
和
id = 2;
label = "2";
这是我的主要目标..
更有趣的是,我这样修改了我的 ClasseCModel:
public partial class ClasseCmodel
{
public List<ClasseCmodel> classeC { get; set; }
}
从而建立一个递归列表。我为 ClasseCmodel 创建了一个编辑器模板:
<p>
@Html.EditorFor(Model => Model.classeC)
</p>
刚刚添加:
@Html.EditorFor(Model => Model.classeC)
在 ClasseCmodel 中创建视图。
我可以在没有 pb 的情况下在 classeC 列表中添加 ClasseCmodel 对象,现在我得到了一个递归视图..