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>