- 假设当前数据库、控制器和视图都已创建
- 模型名为Movies
- 控制名为MoviesController
- 显示页面的视图名为Index
- 数据库上下文为MovieDBContext
1、 在显示页面的视图中(即Index.cshtml)加入一个搜索表单
//表单为一个下拉菜单,一个输入框;当有值输入并点击Filter时,会使用上面Html.BeginForm()中写定的控制器和方法,一般是当前视图的控制器方法;
2、 在对应的控制器方法中,加入两个表单的参数
1、 首先在 工具->Nuget包管理器->管理解决方案的Nuget程序包->浏览,安装”Microsoft.jquery.Unobtrusive.Ajax”包;
2、 在项目资源->App_Start-> BundleConfig.cs, RegisterBundles(BundleCollection bundles)方法中,新添加一个bundles(可以把多个脚本文件绑定在一起)
3、 在显示页面的视图布局页中引用bundles,布局页默认为 Views->Shared->_Layout.cshtml,在布局页面的下方编写@scripts.Render("~/bundles/moviesscripts")
4、 在显示页面的视图中加入Ajax搜索表单
5、 新建一个view,新建时勾选”创建为分部视图”,而后将显示页面的视图中所有显示数据的标签和代码剪切到新建的分部视图中,注意要把model引用进来,注意要把显示数据的标签和代码包含在覆盖指定ID下
6、 同样,使用Ajax搜索,在控制器对应的方法中也要同上添加搜索参数,还要在方法内加以判断是否为Ajax请求,若是则返回过滤后的数据和部分页面,若不是则显示全部