2013-05-06 3 views
0

이미 내 DB에서 검색 할 cityname을 나타내는 city 매개 변수가 있습니다. mysite/List? city = mycityname을 할 때 모든 것이 잘 작동하지만 뭘 하려는지 도시 이름 예 : 리스트와 결합 된 firstname으로 검색을 수행하고 싶습니다. 목록? city = mycityname & firstName = myfirstname. 어떻게해야합니까? 여기 city에 대한 쿼리가 있습니다. firstname 매개 변수도 추가했지만 실제로 추가하는 방법을 모르므로 둘 다 필터링합니다.여러 매개 변수 asp net mvc 4

public string CurrentFirstName { get; set; }

public ViewResult List(string city, string firstName, int page = 1) 
    { 
     UsersListViewModel model = new UsersListViewModel 
     { 
      Users = repository.Userss 
      .Where(p =>city == null || p.CityName == city) 
      .OrderBy(p => p.UsersId) 
      .Skip((page - 1) * PageSize) 
      .Take(PageSize), 
      PagingInfo = new PagingInfo 
      { 
       CurrentPage = page, 
       UsersPerPage = PageSize, 
       TotalUsers = repository.Userss.Count() 
      }, 
      CurrentCity = city 
      // CurrentFirstName = firstName 
     }; 
     return View(model); 
    } 

답변

1

당신은 같은 몇 가지 조건 쿼리 작성을 할 수

public ViewResult List(string city, string firstName, int page = 1) 
{ 
    var query = repository.Userss.Where(p => city == null || p.CityName == city); 
    if (firstName != null) 
     query = query.Where(p => firstName == null || p.FirstName == firstName); 

    var model = new UsersListViewModel 
    { 
     Users = query 
     .OrderBy(p => p.UsersId) 
     .Skip((page - 1) * PageSize) 
     .Take(PageSize), 
     PagingInfo = new PagingInfo 
     { 
      CurrentPage = page, 
      UsersPerPage = PageSize, 
      TotalUsers = repository.Userss.Count() 
     }, 
     CurrentCity = city 
     // CurrentFirstName = firstName 
    }; 
    return View(model); 
} 

참고 : 난 당신이 또한 TotalUsers 계산

이 도움이

희망에 검색 기준을 고려해야한다고 생각합니다.

1

다음과 같은 코드로 봐 가지고이

Users = repository.Userss 
     .Where(p =>city == null || p.CityName == city) 
     .Where(p=> firstName == null || p.FirstName == firstName) 
     .OrderBy(p => p.UsersId) 
    // rest of your query 
1

같은 것을 쓸 수 있습니다 :

public ViewResult List(string city, string firstName, int page = 1) 
    { 
     UsersListViewModel model = new UsersListViewModel 
     { 
      Users = repository.Userss 
      .Where((p =>city == null || p.CityName == city) && 
      (p =>firstname == null || p.FirstName == firstName)) 
      .OrderBy(p => p.UsersId) 
      .Skip((page - 1) * PageSize) 
      .Take(PageSize), 
      PagingInfo = new PagingInfo 
      { 
       CurrentPage = page, 
       UsersPerPage = PageSize, 
       TotalUsers = repository.Userss.Count() 
      }, 
      CurrentCity = city 
      CurrentFirstName = firstName 
     }; 
     return View(model); 
    }