как мне реализовать таблицу для каждого объекта иерархии в представлениях

Я внедрил шаблон таблицы для иерархии в одну из своих сущностей, и это выглядит так:

это

Сущности атм, субэ и ачихава в основном произошли от сущности мекан. с этим проблем нет. ну, я хочу знать, как мне реализовать это в представлениях CRUD.

все эти сущности имеют свои собственные модели представления, и сам по себе мекан не предназначен для создания сам по себе, пользователь может создать только атм, субэ или ацихаву, потому что мекан является абстрактной сущностью. но я не могу просто установить модель представления в качестве базовой сущности и продолжить, потому что она не предназначена для использования таким образом и выдает ошибки.

теперь я должен вести себя с этими производными объектами как с совершенно разными объектами и создавать их отдельные представления для каждого отдельного действия? или найти другой способ добиться этого.

благодаря.


person Batu    schedule 09.07.2014    source источник
comment
Почему вы не можете создать модель просмотра Mekan, которая содержит модели просмотра atm, sube и acikhava?   -  person lucuma    schedule 09.07.2014
comment
@lucuma хм, позвольте мне попробовать это   -  person Batu    schedule 09.07.2014
comment
@lucuma, так какой должен быть тип параметра на контроллере? как mvc знает, что некоторые параметры формы действительно принадлежат производной модели представления? Должен ли я определить все свойства производных моделей представления, чтобы создать модель представления, чем написать метод, чтобы каким-то образом обернуть его в правильную модель представления. я немного запутался в этом.   -  person Batu    schedule 09.07.2014
comment
Я добавил ответ с некоторыми подробностями.   -  person lucuma    schedule 09.07.2014


Ответы (1)


Вы можете создать модель представления для Mekan:

public class MekanViewModel {
   public AtmViewModel Atm {get;set;}  // you said you already created these view models
   public SubeViewModel Sube {get;set;}
   public AcikhavaViewModel Acikhava {get;set;}
}

Ваше представление будет строго типизированным:

@model MekanViewModel

@Html.TextBoxFor(m=>m.Atm.Atm_TerminalNo)
etc

Вы контроллер, который будет получать данные, будет получать MekanViewModel

[HttpPost]
public ActionResult Create(MekanViewModel mekan)
person lucuma    schedule 09.07.2014
comment
ну, я совсем забыл о том, что вы показываете во втором блоке кода. спасибо @lucuma - person Batu; 10.07.2014