日期:2014-05-17  浏览次数:20423 次

自定义查询条件,查询结果分页显示问题
根据用户选择的条件查询数据库,并分页显示结果。
Controller中的方法如下:
Index()向用户显示选择查询条件页面
[HttpPost] Index() 根据选好的条件查询数据库,并将结果返回QueryResults页面。

问题是:由于采用了MvcPager分页插件,查询结果第1页结果显示正常,但当点击第2页或其他时,默认就返回了Index.cshtml页面,而不显示结果数据了。这个问题应该如何处理?是不是要将查询结果放在另外的controller中显示?如果这样做的话,应该如何将结果数据传给新的controller呢?

controller如下
C# code

public class SearchController : Controller
{
    public ActionResult Index()
    {
        ViewBag.CITYNAME = new SelectList(_db.city, "CITYID", "CITYNAME");
        ViewBag.COUNTYRNAME = new SelectList(_db.coutry, "COUNTRYID", "COUNTRYNAME");
        return View();
    }

    [HttpPost]
    public ActionResult Index(FormCollection formValue, int? pageid)
    {
        PagedList<city>  q = ... //(查询语句) ;
        return View("QueryResults",q);
}
}




------解决方案--------------------
你可以更改控制器名
public ActionResult Index(FormCollection formValue, int? pageid)

改成
public ActionResult Index2(FormCollection formValue, int? pageid)

然后将上面的[HttpPost]去掉,表单提交时,直接提交到index2,而不是index

这们就OK解决了