mvc controllers使用linq进行动态参数查询方式

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/smallbabylong/article/details/80665572

mvc controllers使用linq进行动态参数查询方式


   public ActionResult Index(int? page)
        {
            string name = "";
            string time="";
            if (Request.QueryString["name"]!=null)
                name=Request.Form["name"].ToString()==""?"": Request.Form["name"].ToString();
            if (Request.QueryString["time"] != null)
                time = Request.QueryString["time"].ToString();
            int pageSize = 10;
            int pageNumber = (page ?? 1); 
            var Sin= from S in db.SignIn
                    join S1 in db.Leader on S.LeaderID equals S1.ID 
                          select new
                          {
                              S.City,
                              S.County,
                              S.Location,
                              S.Province,
                              S.Remark,
                              S.time,
                              S1.Name
                          };
            if (name != "")
                Sin = Sin.Where(a => a.Name.Equals(name));
            if (time != "") {
                DateTime date = DateTime.Parse(time);
                Sin = Sin.Where(a => a.time.Year == date.Year && a.time.Month == date.Month && a.time.Day == date.Day);
            }
            ViewBag.TCount = Sin.ToList().Count;
            float num = ViewBag.TCount;
            List<SelectListItem> itemList = new List<SelectListItem>();
            int pagecount = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(num / pageSize)));
            for (int i = 1; i <= pagecount; i++)
            {
                SelectListItem item = new SelectListItem()
                {
                    Value = i.ToString(),
                    Text = i.ToString()
                };
                itemList.Add(item);
            }
            ViewData["PageList"] = new SelectList(itemList, "Value", "Text");
            return View(Sin.OrderByDescending(s=>s.time).ToPagedList(pageNumber, pageSize));
        }

其中
if (name != "")
Sin = Sin.Where(a => a.Name.Equals(name));
if (time != "") {
DateTime date = DateTime.Parse(time);
Sin = Sin.Where(a => a.time.Year == date.Year && a.time.Month == date.Month && a.time.Day == date.Day);
}

为动态传入参数进行的查询

linq select新的字段组成新表view页面如何遍历查询?
以上方法返回一个model
在view页面操作方式如下:

   @foreach (Object it in Model)
            {
                <tr>
                    @{
                        Object item = it;
                        if (i <= ViewBag.TCount) { i++; }
                    }
                    <td>
                        @item.GetType().GetProperty("Name").GetValue(item)
                    </td>
                    <td>
                        @item.GetType().GetProperty("Location").GetValue(item)
                    </td>
                    <td>
                        @item.GetType().GetProperty("time").GetValue(item)
                    </td>
                    <td>
                        @item.GetType().GetProperty("Province").GetValue(item)
                    </td>
                    <td>
                        @item.GetType().GetProperty("City").GetValue(item)
                    </td>
                    <td>
                        @item.GetType().GetProperty("County").GetValue(item)
                    </td>
                    <td>
                        @item.GetType().GetProperty("Remark").GetValue(item)
                    </td>
                </tr>
            }

将其转为item对象,进而进行操作,应用反射原理,也有使用dynamic的,但是在使用的过程中出现了问题,感兴趣的可以去探索一下

猜你喜欢

转载自blog.csdn.net/smallbabylong/article/details/80665572
今日推荐