Во-первых, DefaultModelBinder
не связывается с полями, поэтому вам нужно использовать свойства
public class HomeModel
{
public Foo Foo { get; set; }
}
. Во-вторых, помощники генерируют элементы управления на основе HomeModel
, но вы отправляете обратно на Foo
, Либо измените метод POST на
[HttpPost]
public ActionResult Save(HomeModel model)
, либо используйте BindAttribute
, чтобы указать Prefix
(который, по существу, разделяет значение префикса от опубликованных значений - поэтому Foo.Bar.Value
становится Bar.Value
для цели привязки)
[HttpPost]
public ActionResult Save([Bind(Prefix="Foo")]Foo model)
Обратите внимание, что вы не должны указывать параметр метода с тем же именем, что и одно из ваших свойств, иначе привязка будет неудачной, а ваша модель будет пустой.