c# - 我怎样才能在 linq asp.net mvc 5 中拥有动态的 where 条件?

标签 c# asp.net asp.net-mvc linq

我想为我的数据库创建一个搜索页面,并想根据不同的条件进行搜索,

看图:

enter image description here

表示我在搜索页面中有多个文本框和下拉菜单

例如,如果textbox1是搜索项目名称的搜索框 textbox2 是项目日期的搜索框 下拉菜单用于搜索位置

如果有人想要他可以设置多个条件进行搜索,或者他只能按一个条件进行搜索,默认情况下它应该显示所有记录。

我怎么会有这样的linq查询

我的查询目前就像 blow 一样,从表 Projects 中获取所有记录:

var query = (from c in db.Projects  orderby c.ProjectId descending select c).AsEnumerable().Skip(starting).Take(2);

我们将不胜感激。

我的搜索 Controller 功能:

    public ActionResult get_search()
    {
        string Project_name = "";
        if(Request.Form["project_name"]!=null)
        {
             Project_name = Request.Form["project_id"];
        }
        int Pro_id = 0;
        if(Request.Form["project_id"]!=null)
        {
             Pro_id = Convert.ToInt32(Request.Form["project_id"]);
        }
        int starting = 0;
        if (Request.Form["starting"] != null)
        {
            starting = Convert.ToInt32(Request.Form["starting"]);
        }
        string strpost = "&ajax=1";
        strpost += "&project_id=" + Pro_id;

        var q_total = (from c in db.Projects select c);
        var d = "where == 1";
        //var query = from c in db.Projects.Take(2).Skip(2) orderby c.ProjectId descending select c;

        var query = (from c in db.Projects  orderby c.ProjectId descending select c).AsEnumerable().Skip(starting).Take(2);
        if(Request.Form["project_name"]!=null)
        {
            query = query.Where(w => w.ProjectName.Contains(Request.Form["project_name"]));
        }
        int numrows = q_total.Count();
        //int count = data.Count;
        string links = Pagination.paginate(numrows, starting, 3, "", "page", strpost);

        ViewBag.link = links;
        ViewBag.query = query;
        return View();
    }

最佳答案

很简单的方法:

var query = from c in db.Projects where((string.IsNullOrEmpty(pname)? true : c.ProjectName.Contains(pname))) orderby c.ProjectId descending select c;

关于c# - 我怎样才能在 linq asp.net mvc 5 中拥有动态的 where 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27204154/

相关文章:

c# - 如何使用 LINQ 将 .csv 文件读入数组

javascript - 从 viewmodel 函数更改 observablearray 值

asp.net - 使用 asp.net 呈现无序列表

c# - unescape后如何转义嵌入式JSON

c# - 内存中烧录System.String

c# - WP7 InvokeScript 错误

asp.net - 如何在没有页眉和页脚的情况下在 Asp.Net 中打印网页 - ASP.NET

asp.net-mvc - 带有自定义文字的 asp .net mvc 路由 url

c# - 存储 ASP.NET 4.5 MVC 用户数据的最佳方式

c# - ASP.NET Identity - HttpContext 没有 GetOwinContext 的扩展方法