如何使用ASP.NET Core实现搜索功能
2017-03-08 15:49
986 查看
1.建立Movie类
public class Movie
{
public int ID { get; set; }
public String Title { get; set; }
[Display(Name = "Release Date"), DisplayFormat(DataFormatString="{0:yyyy-MM-dd}",ApplyFormatInEditMode =true)]
public DateTime ReleaseDate { get; set; }
public decimal Price { get; set; }
public String Genre { get; set; }
}
2.创建控制器
3.创建电影分类类别
public class MovieGenreViewModel
{
public List<Movie> movies;
public SelectList genres;
public String movieGenre { get; set; }
}
4.在控制器Index方法中添加searchString参数,并使用linq搜索到所有Movie数据
//实现搜索功能
// GET: Movies
public async Task<IActionResult> Index(String movieGenre,String searchString)
{
//从数据库中检索所有genre数据,并进行排序
IQueryable<string> genreQuery = from m in _context.Movie
orderby m.Genre
select m.Genre;
var movies = from m in _context.Movie
select m;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
if (!String.IsNullOrEmpty(movieGenre))
{
movies = movies.Where(x => x.Genre == movieGenre);
}
var movieGenreVM = new MovieGenreViewModel();
movieGenreVM.genres = new SelectList(await genreQuery.Distinct().ToListAsync());
movieGenreVM.movies = await movies.ToListAsync();
return View(movieGenreVM);
}5.添加搜索按钮
<form asp-controller="Movies" asp-action="Index" method="get">
<select asp-for="movieGenre" asp-items="Model.genres">
<option value="">ALL</option>
</select>
<p>
Title:<input type="text" name="SearchString" />
<input type="submit" value="search" />
</p>
</form>
public class Movie
{
public int ID { get; set; }
public String Title { get; set; }
[Display(Name = "Release Date"), DisplayFormat(DataFormatString="{0:yyyy-MM-dd}",ApplyFormatInEditMode =true)]
public DateTime ReleaseDate { get; set; }
public decimal Price { get; set; }
public String Genre { get; set; }
}
2.创建控制器
3.创建电影分类类别
public class MovieGenreViewModel
{
public List<Movie> movies;
public SelectList genres;
public String movieGenre { get; set; }
}
4.在控制器Index方法中添加searchString参数,并使用linq搜索到所有Movie数据
//实现搜索功能
// GET: Movies
public async Task<IActionResult> Index(String movieGenre,String searchString)
{
//从数据库中检索所有genre数据,并进行排序
IQueryable<string> genreQuery = from m in _context.Movie
orderby m.Genre
select m.Genre;
var movies = from m in _context.Movie
select m;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
if (!String.IsNullOrEmpty(movieGenre))
{
movies = movies.Where(x => x.Genre == movieGenre);
}
var movieGenreVM = new MovieGenreViewModel();
movieGenreVM.genres = new SelectList(await genreQuery.Distinct().ToListAsync());
movieGenreVM.movies = await movies.ToListAsync();
return View(movieGenreVM);
}5.添加搜索按钮
<form asp-controller="Movies" asp-action="Index" method="get">
<select asp-for="movieGenre" asp-items="Model.genres">
<option value="">ALL</option>
</select>
<p>
Title:<input type="text" name="SearchString" />
<input type="submit" value="search" />
</p>
</form>
相关文章推荐
- Asp.net如何使用access数据库做profile实现按照区域显示相应语言功能
- ASP.NET jQuery 随笔 使用jQuery UI的Autocomplete方法实现文本框的自动搜索填充功能
- 在ASP.NET中如何使用ASP.NET AJAX实时搜索功能控件--RealTimeSearchMonitor
- ASP.NET jQuery 食谱25 (使用jQuery UI的Autocomplete方法实现文本框的自动搜索填充功能)
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 在ASP.NET中如何使用ASP.NET AJAX实时搜索功能控件--RealTimeSearchMonitor
- ASP.NET 2.0: 在使用web.sitemap时,如何实现本地化
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 如何用Asp.Net来实现“网络硬盘”功能
- 如何在asp.net中实现返回上一页的功能
- 如何用Asp.Net来实现“网络硬盘”功能
- 使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender实现自动完成功能(上)
- 如何用Asp.Net来实现“网络硬盘”功能
- 如何用Asp.Net来实现“网络硬盘”功能
- ASP.NET 如何实现抓屏功能
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 技巧和诀窍:使用ASP.NET 2.0 输出缓存替换的功能实现“甜圈缓存(Donut Caching)”
- 如何在asp.net中实现返回上一页的功能
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )(二)