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>

MVC05的更多相关文章

  1. 快速入门系列--MVC--05行为

    Action执行包含内容比较多,主要有同步/异步Action的概念和执行过程,Authorationfilter, ActionFiltor, ResultFilter, ExceptionFilte ...

  2. MVC-05 Model(2)

    五.使用Code First数据库迁移 当Entity Framework Code First的数据模型发生异动时,默认会引发一个System.InvalidOpertaionException异常 ...

  3. MVC-05 Model(1)

    在开发应用程序的过程中,经常需要处理许多大大小小的数据,例如,SQL Server数据库存取.连接AD(Active Directory)数据库进行验证.调用外部Web Service取得数据等.除了 ...

  4. 快速入门系列--MVC--01概述

    虽然使用MVC已经不少年,相关技术的学习进行了多次,但是很多技术思路的理解其实都不够深入.其实就在MVC框架中有很多设计模式和设计思路的体现,例如DependencyResolver类就包含我们常见的 ...

  5. 快速入门系列--MVC--02路由

    现在补上URL路由的学习,至于蒋老师自建的MVC小引擎和相关案例就放在论文提交后再实践咯.通过ASP.NET的路由系统,可以完成请求URL与物理文件的分离,其优点是:灵活性.可读性.SEO优化.接下来 ...

  6. 快速入门系列--MVC--07与HTML5移动开发的结合

    现在移动互联网的盛行,跨平台并兼容不同设备的HTML5越来越盛行,很多公司都在将自己过去的非HTML5网站应用渐进式的转化为HTML5应用,使得一套代码可以兼容不同的物理终端设备和浏览器,极大的提高了 ...

随机推荐

  1. python_8_集合

    1.集合:可变集合set,不可变集合frozenset,集合是无序不重复的 set('hello') set9[1,2,3,4]) set((1,2,3)) 2.添加元素 > add:将元素整体 ...

  2. Spring Boot 2.x 整合 Redis最佳实践

    一.前言 在前面的几篇文章中简单的总结了一下Redis相关的知识.本章主要讲解一下 Spring Boot 2.0 整合 Redis.Jedis 和 Lettuce 是 Java 操作 Redis 的 ...

  3. 109)PHP与oracle网址

    https://pecl.php.net/package/oci8/2.1.8/windowshttps://www.toadworld.com/platforms/oracle/w/wiki/116 ...

  4. Linux基础常用命令大全学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  5. [Machine Learning] Andrew Ng on Coursera (Week 1)

    Week 1 的内容主要有: 机器学习的定义 监督式学习和无监督式学习 线性回归和成本函数 梯度下降算法 线性代数回归 主要是了解一下机器学习的基本概念,重点是学习线性回归模型,以及对应的成本函数和梯 ...

  6. 以elasticsearch-hadoop 向elasticsearch 导数,丢失数据的问题排查

    实际这是很久之前的问题了,当时没时间记录 这里简单回顾 项目基于 数据架构不方便说太细,最精简的 somedata-> [kafka]->spark-stream->elastics ...

  7. django框架基础-ORM跨表操作-长期维护

    ###############    一对一跨表查询    ################ import os if __name__ == '__main__': os.environ.setde ...

  8. Excel-DNA开发包:ExcelDna-0.34.6.zip下载

    Excel-DNA可以用VB.Net或C#开发Excel自定义函数.制作.xll格式的加载宏. 点此下载 ExcelDna-0.34.6.zip

  9. mybatis generator 使用教程(生成带注释的实体类)

    引言: 最近的一个项目,由于数据库表巨多,导致需要创建N多个java实体.dao.mapper.xml映射文件,如果均使用纯手工编写,无疑需要耗费大量时间和精力.于是上网学习了mybatis gene ...

  10. CF-1102E-Monotonic Renumeration

    比较可惜昨天比赛的时候时间不够了,在比赛结束之后五分钟找出了bug提交通过了.然并软: 首先这题说b数组的后一项要么等于前一项,要么等于前一项加一,而且如果a[i] == a[j] ,那么b[i] = ...