Большое спасибо за быстрый ответ. Я наконец нашел решение, вот мое определение классов:
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 создать представление.
Я могу добавить объекты ClasseCmodel в список classeC без pb, и теперь я получаю рекурсивное представление ..