MVC05

1. 添加搜索功能

如何实现url添加查询字符串实现查询指定项目的功能?

来到MovisController,修改Index方法如下

        public ActionResult Index(string queryString)
        {
            var movies = from m in db.Movies select m;
            if(!String.IsNullOrEmpty(queryString))
            {
                movies = movies.Where(s => s.Title.Contains(queryString));
            }
            return View(movies);
        }

修改完毕打开页面,在Movies页面下使用查询字符串进行关键字查询即可。

https://localhost:44366/Movies?queryString=keywords

即可筛选出标题包含关键字的项目。

 

2.通过页面ui进行搜索

直接到View目录下的Index进行修改即可:

<p>
    @Html.ActionLink("Create New", "Create")

    添加搜索功能

    @using (Html.BeginForm())
    {
        <p>
            Title:@Html.TextBox("QueryString") <br />
            <input type="submit" value="Filter" />
        </p>
    }

</p>

指定参数与请求方法:

Html.BeginForm("ActionName","ControllerName",FormMethod.method)

  @using (Html.BeginForm("Index","Movies",FormMethod.Get))
    {
        <p>
            Title:@Html.TextBox("QueryString") <br />
            <input type="submit" value="Filter" />
        </p>
    }

通过post方式进行查找

[HttpPost]
        public string Index(FormCollection fc,string queryString)
        {
            return "<h2>from post method+"+ queryString + "</h2>";
        }

 

3.根据其他字段进行搜索

上述的搜索功能都是依据影片的名称进行查找,现根据其他字段进行查找

TextBox,DropdownList的第二个参数都是默认值

修改Controller Index方法如下:

  public ActionResult Index(string movieGenre,string queryString)
        {
            var GenreList = new List<string>();
            var GenreQry = from d in db.Movies
                           orderby d.Genre
                           select d.Genre;
            // 添加至list并移除重复项
            GenreList.AddRange(GenreQry.Distinct());
            // 传递给View页面
            ViewBag.movieGenre = new SelectList(GenreList);
            var movies = from m in db.Movies select m;
            // 先根据题目查找再根据类别查找
            if(!String.IsNullOrEmpty(queryString))
            {
                movies = movies.Where(s => s.Title.Contains(queryString));
            }
            if (!String.IsNullOrEmpty(movieGenre))
            {
                movies = movies.Where(x => x.Genre==movieGenre);
            }
            return View(movies);
        }

 

修改View如下:

<p>
    @Html.ActionLink("Create New", "Create")

    添加搜索功能

    @using (Html.BeginForm("Index","Movies",FormMethod.Get))
    {
        <p>
            Genre:@Html.DropDownList("movieGenre", "All")<br />
            Title:@Html.TextBox("QueryString") <br />
            <input type="submit" value="Filter" />
        </p>
    }

</p>

 

posted on 2020-01-29 12:39  Tanqurey  阅读(135)  评论(0编辑  收藏  举报