THKS很多关于回复我这么快。我终于找到了解决办法,这是我的类定义:
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>
}
我EditorTemplates:
@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创建视图。 我可以在classeC列表中添加ClasseCmodel对象而无需使用pb,我现在可以获得递归视图..