Настройка: (с использованием Asp.Net MVC 2 RC, Entity Framework, SQL Server, VS2008)
Мой приятель и я работаем над проектом, в котором будут указаны разные домены. Мы хотим вывести домен (веб-сайт) из запроса и использовать его для передачи данных. Эти данные сайта должны быть частью всех контроллеров.
Ex. Данные для domain1.website.com будут
отличаться от данных для
domain2.website.com, и они будут
отличается от данных для website2.com.
Внешний вид сайта одинаков для
все это, но данные разные.
Я установил BaseController, от которого наследуются все остальные мои контроллеры. Но мне это не нравится.
BaseController:
public class BaseController : Controller
{
private Website _website;
private readonly IWebsiteRepository _websiteRepository;
public BaseController(IWebsiteRepository websiteRepository)
{
_websiteRepository = websiteRepository;
}
public Website CurrentWebsite { get; }
}
Проблема в том, что мне теперь нужно передать IWebsiteRepository в базу каждого из моих контроллеров:
public class BioController : BaseController
{
private readonly IBiographyRepository _bioRepository;
public BioController(IBiographyRepository bioRepository, IWebsiteRepository websiteRepository)
: base(websiteRepository)
{
_bioRepository = bioRepository;
}
}
ЗДЕСЬ МОИ ВОПРОСЫ
- Есть ли лучший способ обработки нескольких доменов, нацеленных на один проект и фильтрации данных?
- Есть ли лучший способ иметь объект Website в каждом контроллере?
UPDATE
Извините, я забыл добавить это. Я уже использую IoC (структурная карта). Мой вопрос больше похож на:
- Должен ли я заменить BaseController чем-то другим? ActionFilter
- Есть ли способ настроить его, чтобы мне не нужно было передавать IWebsiteRepository в базовый класс?
- Есть ли лучший способ обработки доменов, используемых для данных?