Ни в коем случае не должно быть столько кода в вашем контроллере.Я подозреваю, что вы не разделили ваши проблемы.
Я бы посмотрел и подумал над ответом на этот SO вопрос:
Шаблоны ASP.NET MVC
Вкратце:
Сложность сложностей в классы Service, которые выполняют четкую задачу, т. Е. Предоставляют то, что нужно контроллеру.
Контроллер должен просто иметь логику приложения, т. Е. Он должен просто действовать как своего рода воздушный трафик, хм, контроллер, отправляющий запросы таким образом и основанный на логике приложения.Это в значительной степени его функция в двух словах.Другие вещи не принадлежат контроллеру.
Мои контроллеры выглядят так:
[Authorize(Roles="Admin, Tutor, Pupil")]
public partial class CourseController : Controller
{
ICourseDisplayService service;
public CourseController(ICourseDisplayService service)
{
this.service = service;
}
public virtual ActionResult Browse(int CourseId, string PupilName, string TutorName)
{
service.Initialize(CourseId, 1, PupilName, TutorName, User);
service.CurrentStepOrder = service.ActiveStepIndex;
if (Request.IsAjaxRequest())
{
return PartialView(MVC.Courses.Course.Views._Display, service.ViewModel);
}
else
{
return View(MVC.Courses.Course.Views.Display, service.ViewModel);
}
}
обратите внимание на создание службы в конструкторе контроллера и вызовы службы вдействия.