How to implement search functionality in C#/ASP.NET MVC

前端 未结 7 2172
执笔经年
执笔经年 2021-02-02 01:54

I am developing an ASP.NET MVC 3 application using C# and Razor.

I have a search form that looks like this: \"searc

7条回答
  •  忘了有多久
    2021-02-02 02:00

    create method and call it on button click demo below

    public List gettaskssdata(int c, int userid, string a, string StartDate, string EndDate, string ProjectID, string statusid) {

            List tbtask = new List();
    
    
            var selectproject = entity.tbluserprojects.Where(x => x.user_id == userid).Select(x => x.Projectid);
    
            if (statusid != "" && ProjectID != "" && a != "" && StartDate != "" && EndDate != "")
            {
                int pid = Convert.ToInt32(ProjectID);
                int sid = Convert.ToInt32(statusid);
                DateTime sdate = Convert.ToDateTime(StartDate).Date;
                DateTime edate = Convert.ToDateTime(EndDate).Date;
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblproject.ProjectId == pid) && (x.tblstatu.StatusId == sid) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a)) && (x.StartDate >= sdate && x.EndDate <= edate)).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if (statusid == "" && ProjectID != "" && a != "" && StartDate != "" && EndDate != "")
            {
                int pid = Convert.ToInt32(ProjectID);
                DateTime sdate = Convert.ToDateTime(StartDate).Date;
                DateTime edate = Convert.ToDateTime(EndDate).Date;
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblproject.ProjectId == pid) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a)) && (x.StartDate >= sdate && x.EndDate <= edate)).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if (ProjectID == "" && statusid != "" && a != "" && StartDate != "" && EndDate != "")
            {
                int sid = Convert.ToInt32(statusid);
                DateTime sdate = Convert.ToDateTime(StartDate).Date;
                DateTime edate = Convert.ToDateTime(EndDate).Date;
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblstatu.StatusId == sid) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a)) && (x.StartDate >= sdate && x.EndDate <= edate)).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if(ProjectID!="" && StartDate == "" && EndDate == "" && statusid == ""  && a == "")
            {
                int pid = Convert.ToInt32(ProjectID);
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblproject.ProjectId == pid)).OrderByDescending(x => x.ProjectId).ToList();
    
            }
            else if(statusid!="" && ProjectID=="" && StartDate == "" && EndDate == ""  && a == "")
            {
                int sid = Convert.ToInt32(statusid);
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblstatu.StatusId == sid) ).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if (a == "" && StartDate != "" && EndDate != "" && ProjectID != "")
            {
                int pid = Convert.ToInt32(ProjectID);
                DateTime sdate = Convert.ToDateTime(StartDate).Date;
                DateTime edate = Convert.ToDateTime(EndDate).Date;
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.ProjectId == pid) && (x.StartDate >= sdate && x.EndDate <= edate)).OrderByDescending(x => x.ProjectId).ToList();
    
            }
            else if (StartDate == "" && EndDate == "" && statusid != "" && ProjectID != "" && a != "")
            {
                int pid = Convert.ToInt32(ProjectID);
                int sid = Convert.ToInt32(statusid);
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblproject.ProjectId == pid) && (x.tblstatu.StatusId == sid) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a))).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if (a == "" && StartDate == "" && EndDate == "" && ProjectID != "" && statusid != "")
            {
                int pid = Convert.ToInt32(ProjectID);
                int sid = Convert.ToInt32(statusid);
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Include(x => x.tblstatu).Where(x => selectproject.Contains(x.ProjectId) && x.tblproject.company_id == c && x.tblproject.ProjectId == pid && x.tblstatu.StatusId == sid).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if (a != "" && StartDate == "" && EndDate == "" && ProjectID == "" && statusid == "")
            {
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a))).OrderByDescending(x => x.ProjectId).ToList();
    
            }
            else if (a != "" && ProjectID != "" && StartDate == "" && EndDate == "" && statusid == "")
            {
                int pid = Convert.ToInt32(ProjectID);
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.tblproject.ProjectId == pid) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a))).OrderByDescending(x => x.ProjectId).ToList();
            }
            else if (a != "" && StartDate != "" && EndDate != "" && ProjectID == "" && statusid == "")
            {
                DateTime sdate = Convert.ToDateTime(StartDate).Date;
                DateTime edate = Convert.ToDateTime(EndDate).Date;
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && (x.tblproject.company_id == c) && (x.TaskName.Contains(a) || x.tbUser.User_name.Contains(a)) && (x.StartDate >= sdate && x.EndDate <= edate)).OrderByDescending(x => x.ProjectId).ToList();
            }
            else
            {
                tbtask = entity.tbltasks.Include(x => x.tblproject).Include(x => x.tbUser).Where(x => selectproject.Contains(x.ProjectId) && x.tblproject.company_id == c).OrderByDescending(x => x.ProjectId).ToList();
            }
            return tbtask;
    
        }
    

提交回复
热议问题