关于MVC带条件查询的分页疑惑

直接上源码

public ActionResult Medical_s(string txtHd, string txtAD, string txtDate1, string txtDate2, int? page)
        {


            string mhd = txtHd;
            string mad = txtAD;
            string mdate1 = txtDate1;
            string mdate2 = txtDate2;
            DateTime date1 = DateTime.MinValue;
            DateTime date2 = DateTime.MaxValue;

            if (!string.IsNullOrEmpty(mdate1))
            {
                date1 = Convert.ToDateTime(mdate1);
            }
            if (!string.IsNullOrEmpty(mdate2))
            {
                date2 = Convert.ToDateTime(mdate2);
            }
            const int pageSize = 10;
            int currentPage = (page ?? 1);
            var All = (from m in db.MMH
                       where (m.HOSPTIAL_ID.Contains(mhd) && m.ADMISSION_NO.Contains(mad) && m.ADMISSION_DATE >= date1 && m.DISCHARGE_DATE <= date2)
                       select m).OrderBy(s => s.ADMISSION_NO);


            IPagedList<MMH> Alls = All.OrderBy(s => s.ADMISSION_NO).ToPagedList(currentPage, pageSize);
            Page vdata = new Page();
            vdata.MMHs = Alls;
            vdata.S1 = mhd;
            vdata.S2 = mad;
            vdata.S3 = mdate1;
            vdata.S4 = mdate2;
            return View(vdata);
        }

下面是页面跳转传参的源码

 @Html.PagedListPager(Model.MMHs, page => Url.Action("Medical_s", new { txtHd=Model.S1, txtAD=Model.S2, txtDate1=Model.S3, txtDate2=Model.S4, page }))

现在的疑惑是,每当执行查询的时候,第一页看起来并没有问题,可是当你尝试跳转到第二页时,返回值却为空。

经过断点检查后,发现错误出现在linq语句那里。明明查询条件已经赋值了,Linq查询结果还是为0,请问我的错误到底出现在哪里

代码看着没问题,把查询条件放到数据库里面看一下有没有数据

int currentPage = (page ?? 1);
下断点砍下,page的HasValue = true么