Вы можете сделать ваши контроллеры общими, чтобы они работали с конкретным типом IPageModel.
, поэтому у вас будет
HomeController<Home>
и PageController<Page>
Если вы сделаете их производными от одного базового класса, у которого есть только конструктор с 1 параметром (экземпляр T)Итак:
public abstract class BaseController<T> where T : IPageModel
{
protected T Model { get; private set; }
public BaseController(T model)
{
Model = model;
}
Таким образом, вы получите контроллер с недавно созданным экземпляром (например) Home.Я не думаю, что вам нужна пустая модель, но вам придется обрабатывать это в ваших регистрациях в структурной карте, определяя их область в сеансе или запрос, например.