У меня есть несколько дочерних классов ViewModel, которые наследуются от базового класса ViewModel.
Я передаю свой дочерний ViewModel в свой View, который затем переходит в частичное представление.Основное представление принимает дочерний тип, а частичное - родительский.
Все отображается правильно, когда я вручную заполняю свойства.Однако, когда я отправляю форму, у моего действия контроллера есть только свойства для дочернего класса - ни одно из свойств базового класса не завершено?
например,
public abstract class BaseDetails
{
public string Name { get; set; }
public BaseDetails()
{ }
public BaseDetails(string name)
{
Name = name;
}
}
public class LocalDetails:BaseDetails
{
public int Visits { get; set; }
public LocalDetails()
{ }
public LocalDetails(int visits, string name)
:base(name)
{
Visits = visits;
}
}
При простом представлении:
@using (Html.BeginForm())
{
@Html.TextBoxFor(m => m.Visits)
<br />
@Html.Partial("Name", Model)
<input id="Submit1" type="submit" value="submit" />
}
Частичное представление содержит одно текстовое поле.
В IE: ViewSource показывает, что тег формы находится вокруг обоих tetxboxes.
Однако, когда я подчиняюсь методу контроллера:
[HttpPost]
public ActionResult EditLocal (LocalDetails model)
model.Visits заполнен правильно, но model.Name пусто?
Есть идеи?Я добавил конструкторы без параметров, потому что я получил исключение при отправке, если я этого не сделал.