У меня есть два класса:Asp.net MVC Razor: Передача данных Комплексные модели
public class Sportevent
{
public int ID { get; set; }
public DateTime EventsStart { get; set; }
public DateTime EventsEnd { get; set; }
public virtual Address Address { get; set; }
}
public class Address
{
public int ID { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public int PostalCode { get; set; }
public string City { get; set; }
public string Country { get; set; }
public string Nation { get; set; }
}
Так Спортивные ссылающийся Адрес Entity. Вид для создания Sportevent также содержит формы для адреса. Контроллер получает информацию, но что происходит с адресом? Как я могу передать их или он уже содержал
public ActionResult Create([Bind(Include = "EventsStart,EventsEnd, Address")] Sportevent sportevent){
...
}
Я думаю, что выше синтаксис привязки является неправильным, потому что адрес является сложным типом данных вместо этого primitve один, или нет? Итак, какова наилучшая практика для прохождения таких сложных данных?
Итак, решение/трюк/идея ViewModels создает дополнительный слой, который представляет собой модель, в представлениях, правильно? ViewModel-Data нужно преобразовать explizit через код, правильно? Но у меня есть код – Kinimod
Я думаю о том, чтобы получить класс и избавиться от свойств, но это разрушит концепцию разделения. – Kinimod
Да, существует определенное количество реплик между ViewModel и EF Entity Model.Преобразование должно выполняться где-то в коде, даже если вы используете AutoMapper, вам нужно его настроить. Я не думаю, что работа с ViewModel из модели Entity будет работать, например, было бы невозможно скрыть идентификатор в CreateViewModel. –