В настоящее время я работаю над приложением, которое использовало наследование в одном сценарии. Но теперь у меня есть задача, когда мне нужно вернуть более одного вида из моего модельного построителя. Я опишу ниже:
В моем методе контроллера мы сохранили его и использовали построенные модели.
public ViewResult Summary(ReportArgs args)
{
return View<SomeBuilder>(args);
}
Затем он обращается к методу построения, который наследуется от базового класса.
public class SomeBuilder : NewBuilder<TaskVM, Task> {}
Затем NewBuilder имеет следующую реализацию:
public class NewBuilder<TModel, TItem> : ReportBuilder where TModel : SomeReportVM<TItem>, new() where TItem : ReportItem
{
public override ReportVM Build(ReportArgs args)
{
/* Some code to get roles here */
return new TModel
{
FeedbackModel = FeedbackBuilder.Build(inputGrid.Report.Id),
};
}
}
Что мне нужно сделать, это вернуть другую VM из контроллера NewBuilder, но изо всех сил пытаюсь найти лучший способ сделать это?
Я не могу вернуть InvalidVM при передаче в TaskVM. Просто, чтобы люди знали, что это используется несколькими представлениями для другой виртуальной машины и класса сущности, будет передан в?