Ваша модель имеет круговые ссылки в ваших моделях представления.Это не поддерживается сценарием связывателя модели по умолчанию.Я бы порекомендовал вам всегда использовать шаблоны редактора в ваших представлениях.Пример:
Модель:
public class A
{
public int Name { get; set; }
public virtual ICollection<B> Bs { get; set; }
}
public class B
{
public int Val { get; set; }
}
Контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new A
{
Name = 123,
Bs = new[]
{
new B { Val = 1 },
new B { Val = 2 },
new B { Val = 3 },
}
};
return View(model);
}
[HttpPost]
public ActionResult Index(A a)
{
// The Bs collection will be properly bound here
return View(a);
}
}
Представление (~/Views/Home/Index.cshtml
):
@model A
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(x => x.Name)
@Html.EditorFor(x => x.Name)
</div>
@Html.EditorFor(x => x.Bs)
<button type="submit">OK</button>
}
Соответствующий шаблон редактора, которыйбудет отображаться для каждого элемента коллекции Bs (~/Views/Home/EditorTemplates/B.cshtml
):
@model B
<div>
@Html.LabelFor(x => x.Val)
@Html.EditorFor(x => x.Val)
</div>