2013-02-20 3 views
0

나는 검색 및 페이징 만에보기를 얻기 위해 노력하고 검색이 괜찮습니다하지만 때 나는 어떤 어떤 일이asp.net mvc 검색 페이지가 작동하지 않습니까?

[HttpGet] 
public ActionResult Browse() 
{ 
    return View();  
} 

[HttpPost] 
public ActionResult Browse(FormCollection formContent ,int? page) 
{ 
    string cartype = !String.IsNullOrEmpty(formContent["Cartype"]) ? formContent "Cartype"] : ""; 
    string SearchBox = !String.IsNullOrEmpty(formContent["searchbox"]) ? formContent["searchbox"] : ""; 
    DateTime toDate = !String.IsNullOrEmpty(formContent["toDate"]) ? DateTime.Parse(formContent["toDate"]) : DateTime.MaxValue; 
    string Sort = formContent["sort"]; 

    mvc4advertismentEntities2 db = new mvc4advertismentEntities2(); 
    var result = AdvertFunObj.GetAdverts(); 

    switch (Sort) 
    { 
     case "": 
      result = db.Mercedes.Where(m => m.CarType == cartype).ToList(); 
      break; 
     case "price": 
      result = db.Mercedes.Where(m => m.CarType == cartype).OrderByDescending(m =>  m.Price).ToList(); 
      break; 
     case "date": 
      result = db.Mercedes.Where(m => m.CarType == cartype).OrderByDescending(m => m.ExpirationDate).ToList(); 
      break; 
     case "enginecapaity": result = db.Mercedes.Where(m => m.CarType == cartype).OrderByDescending(m => m.EngineCapacity).ToList(); 
      break; 
    } 

    int pageSize = 6; 
    int pageNumber = (page ?? 1); 
    return View(result.ToPagedList(pageNumber, pageSize)); 
} 

뷰에 표시되는 다음 페이지의 링크를 클릭하면 코드

<table class="advertbrowsediv " id="searcht" width="100%"><tr><td style="width: 42%"> فئة السياره : 
     <br /> 
        <%: Html.DropDownList("Cartype", new SelectListItem [] { 
        new SelectListItem(){Text="مرسيدس",Value="مرسيدس", Selected=true}, 
       new SelectListItem(){Text="ميتسوبيشي",Value="ميتسوبيشي"}, 
     }) %> 
</td> 

<td >ترتيب حسب : 
<br /> 
    <%: Html.DropDownList("sort", new SelectListItem [] { 
      new SelectListItem(){Text="",Value="", Selected=true}, 
      new SelectListItem(){Text="التاريخ",Value="date"}, 
      new SelectListItem(){Text="السعر",Value="price"}, 
      new SelectListItem(){Text="سعة المحرك",Value="enginecapaity"}, 


}, 
</td><td><br /><input style=" float:right" type="submit" value="بحث> 

</table> 

답변

0

확실하지 않습니다. 어쨌든 다음 페이지 링크를 클릭하면 게시하지 않고 가져 오기를 수행합니다. 따라서 get 메소드에 로직을 추가해야합니다.

0

검색을 수행 할 때 HttpPost 메서드를 사용하고 검색 및 페이징이 발생하는 곳에서 "찾아보기"메서드가 실행됩니다. 당신은 다음 페이지를 명중 할 때

당신은 (httpPost) 일하지 않을 찾아보기 "에서 어떻게하든 HttpGet 요청 (나는 추정)하고있을 것이다. 새 페이지로 이동

보존 할 필요합니다 검색 기준, 페이지 번호 및 그 방법에서 데이터 세트를 다시 가져 와서 페이징해야합니다.

다른 옵션은 다음 페이지 요청을 만드는 것입니다 HTTPPost 요청을 실행하고 "찾아보기"(http 포스트)를 실행하게합니다.

피들러는 친구입니다 http://www.fiddler2.com/fiddler2/ 실행하면 서버에 정확히 무엇이 전송되는지, 어떤 동사가 사용되는지 등을 알 수 있습니다.

도움이되기를 바랍니다.

관련 문제