Я использую модели вложенных представлений для отображения представлений на основе ролей пользователей.Как отправить данные из вложенных ViewModel в контроллер
Модель:
public class MainVM {
//some properties
public OneVM One {get; set;}
public TwoVM Two {get; set;}
}
public class OneVM {
//properties
}
public class TwoVM {
//properties
}
Как написано here, что только основная модель должна быть отправлен контроллером. Я использую Automapper для сопоставления свойств полученной модели.
Контроллер:
public ActionResult EditAction(MainVM model){
var item = db.Table.Find(model.Id);
//automapper to map
AutoMapper.Mapper.Map(model.One, item); //does not work
db.Entry(item).State = EntityState.Modified;
db.SaveChanges();
}
Это правильный способ сделать это? Что я делаю неправильно здесь.
Update: Это мнение я использовал для отображения вложенных моделей просмотра с частичным видом
Вид:
@model MainVM
@Html.RenderPartial("_OnePartial", Model.One)
Этот ответ https://stackoverflow.com/a/6292180/342095 определяет помощник Html, который будет генерировать частичный вид с именами прав.
'вар результат = Mapper.Map (пункт);' ' –
@FarhadJabiyev Mapper.Map (пункт) ; 'но вы передали элемент в качестве источника? Хотя источником должен быть полученный параметр 'model' через –
SMUsamaShah
Вы не хотите конвертировать' item' в 'OneVM'? –