Статус отсутствует. Ваша проблема в другом месте, и вы не можете определить, откуда вы дали информацию. Связыватель модели по умолчанию прекрасно работает с вложенными классами. Я использовал его бесконечность раз, и он всегда работал.
Модель:
public class Person
{
public string Name { get; set; }
public BillingInfo BillingInfo { get; set; }
}
public class BillingInfo
{
public string BillingName { get; set; }
}
Контроллер:
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new Person
{
Name = "statichippo",
BillingInfo = new BillingInfo
{
BillingName = "statichippo"
}
};
return View(model);
}
[HttpPost]
public ActionResult Index(Person model)
{
return View(model);
}
}
Вид:
<% using (Html.BeginForm()) { %>
Name: <%: Html.EditorFor(x => x.Name) %>
<br/>
BillingName: <%: Html.EditorFor(x => x.BillingInfo.BillingName) %>
<input type="submit" value="OK" />
<% } %>
Отправленные значения: Name=statichippo&BillingInfo.BillingName=statichippo
идеально привязан к действию POST. То же самое работает и с GET.
Один из возможных случаев, когда это может не сработать, следующий:
public ActionResult Index(Person billingInfo)
{
return View();
}
Обратите внимание, как параметр действия называется billingInfo
, то же имя, что и у свойства BillingInfo
. Убедитесь, что это не ваш случай.