У меня есть приложение, которое имеет публичный режим «конечного пользователя» и режим «бэк-офиса». Оба «режима» в значительной степени используют одну и ту же логику контроллера, но пользовательские интерфейсы для этих разных «режимов» радикально отличаются.
Используя стандартную маршрутизацию по умолчанию, которую вы получаете, когда проект создается впервые, у меня есть что-то вроде следующего:
Controllers\
HomeController.cs
Views
BackOffice
Index.aspx
Public
Index.aspx
Shared
BackOfficeSite.Master
PublicSite.Master
В моем HomeController.cs
у меня есть логика, которая выглядит следующим образом:
public ActionResult Index()
{
var devices = DeviceRepository.FindDevicesByCustomer(100);
if(IsBackOffice())
{
return View(@"~/Views/BackOffice/Index.aspx", devices);
}
return View(@"~/Views/Public/Index.aspx", devices);
}
Это правильный способ сделать это, или я копаю себе дыру против паттерна?
Я использую ASP.NET MVC 2.