Где допущена ошибка в контроллере?

Есть следующий контроллер:
public class CollegeController : Controller
    {
        private ICollegeRepository repository;
        public int pageSize = 10;
        public CollegeController(ICollegeRepository repo)
        {
            repository = repo;
        }

        public ViewResult List(string region,
                               string area,
                               string localityType, int page = 1)
        {
            CollegeListViewModel model = new CollegeListViewModel
            {
                Colleges = repository.Colleges
                .Where(p => (region == null || p.Area.Region.Name == region)
                && (localityType == null || p.LocalityType.Name == localityType))
                .Where(p => area == null || p.Area.Name == area)
                .OrderBy(college => college.CollegeId)
                .Skip((page - 1) * pageSize)
                .Take(pageSize),
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = pageSize,
                    TotalItems   = ((region == null) && (localityType == null)) ?
                repository.Colleges.Count() :
                repository.Colleges.Where(college => college.Area.Region.Name == region)
                                   .Where(college => college.Area.Name == area)
                                   .Where(college => college.LocalityType.Name == localityType).Count()
                },
                CurrentLocalityType = localityType,
                CurrentRegion = region,
                CurrentArea = area,
            };
            return View(model);
        }
    }

Вся проблема что при запуске если передать сначала region, а потом localityType, все отлично
Но если пытаться передать localityType, когда в region передано null, localityType тоже передает null
Другими словами, перед передачей localityType нужно обязательно передать region
Как подобное исправить?
  • Вопрос задан
  • 284 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы