添加一个查找方法和查找视图
在这一节我们将实现一个SearchIndex响应方法,允许您按流派或名字查找电影。
它利用网址/Movies/SearchIndex。请求将展示一个HTML页面,它包含为了查
找电影由用户输入的input控件。当用户提交页面时,响应方法将获得由用户post
的查找条件并依据条件查询数据库。最终的效果图如下所示 。
展示查找页面
首先,在MoviesController类中添加一个SearchIndex响应方法。这个方法返回一个包含HTML
页面的视图。代码如下:
public ActionResult SearchIndex(string searchString)
{
var movies = from m in db.Movies
select m;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
return View(movies);
}
SearchIndex方法的第一行创建了以下的LINQ查询来查询电影:
var movies = from m in db.Movies
select m;
查询在这里定义,但却没有执行!(译注:LINQ在需要执行的时候才会执行。
一般来说,真正需要使用数据时才真正执行)
如果参数searchString不是空字符串,电影的查询被修改为过滤查找字符串,
使用如下代码:
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
当定义或通过Where、OrderBy方法修改时,LINQ查询并没有执行。相反,
查询的执行被延迟,这意味着LINQ表达式一直被延迟到它真实的值被遍历
(循环)或被ToList方法调用。在SearchIndex方法中,LINQ查询在SearchIndex
视图中执行。了解更多关于延迟查询执行,参见Query Execution。
现在您可以实现SearchIndex视图展示给用户。右键SearchIndex方法内部并单击
“Add View”,在“Add View”对话框中,指明您将传递Movie对象给视图模板
作为它的模型类。在架构模板(Scaffold template)列表中,选择List,单击Add。
当您单击Add按钮时,视图模板ViewsMoviesSearchIndex.cshtml被创建。
因为您在架构模板(Scaffold template)选择List,Visual Studio自动在视
图中生成了一些内容。架构创建了一个HTML窗体。它检查Movie类并为每个
类属性创建代码来输出<label>元素。下面展示了自动生成的创建视图:
@model IEnumerable<MvcMovie.Models.Movie>
@{
ViewBag.Title = "SearchIndex";
}
<h2>SearchIndex</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
Title
</th>
<th>
ReleaseDate
</th>
<th>
Genre
</th>
<th>
Price
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReleaseDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Genre)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
分享到:
相关推荐
asp.net mvc3.0快速入门
ASP.NET MVC3.0 是微软开发的一个开源框架,用于构建高度可测试和可维护的Web应用程序。这个框架结合了Model-View-Controller(MVC)设计模式、ASP.NET的功能以及 Razor 视图引擎,提供了更灵活的Web开发方式。在这...
ASP.NET MVC 5入门指南 (中文PDF+源碼) 1. ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5 - 控制器 3. ASP.NET MVC 5 - 视图 4. ASP.NET MVC 5 - 将数据从控制器传递给视图 5. ASP.NET MVC 5 - 添加一个模型 6. ...
ASP.NET MVC3.0是微软开发的一个开源框架,用于构建高度可测试和可维护的Web应用程序。这个框架结合了Model-View-Controller(MVC)设计模式、ASP.NET Web Forms的功能以及一些新的特性,旨在提高开发效率和代码的...
ASP.NET MVC 3.0 是一个用于构建动态网站的开源框架,它基于模型-视图-控制器(Model-View-Controller, MVC)设计模式。这个框架由微软开发,旨在提供比传统的ASP.NET Web Forms更好的可测试性和更清晰的代码结构。...
ASP.NET MVC 3.0 是微软推出的一款基于模型-视图-控制器(Model-View-Controller,MVC)设计模式的Web应用程序开发框架。这个框架是ASP.NET平台的一部分,它为构建可测试、分层、易维护的Web应用提供了强大的支持。...
VS2010安装完成后,自带的没有MVC3,下载此软件后安装,VS会自动带出mvc3的选项,可以开发或是打开MVC3的项目,下载之后是4个安装文件 AspNetMVC3Setup.exe,AspNetMVC3Setup_CHS.exe, AspNetMVC3ToolsUpdateSetup....
ASP.NET MVC 3.0是微软开发的一款用于构建可维护性和测试性强的Web应用程序的框架。它是基于ASP.NET平台的,结合了Model-View-Controller(MVC)设计模式,提供了一种分离关注点的方式,使得开发者能够更清晰地处理...
ASP.NET MVC3.0教程 MVC3.0教程 ASP.NET MVC3.0入门
**Asp.net MVC 3.0 音乐商店** 是一个经典的Web开发示例,用于教授如何使用ASP.NET MVC框架构建一个完整的Web应用程序。在这个项目中,我们将深入探讨MVC设计模式、ASP.NET MVC 3.0的关键特性以及如何利用它们来创建...
ASP.NET MVC 3.0是微软推出的一种基于模型-视图-控制器(Model-View-Controller,MVC)设计模式的Web应用程序开发框架。这个框架为开发者提供了更强大的设计和开发工具,使得构建复杂的、可扩展的Web应用变得更加...
本入门项目示例旨在帮助初学者理解并掌握ASP.NET MVC 3.0的核心概念和实践技巧。 首先,让我们深入了解ASP.NET MVC架构。MVC代表Model-View-Controller,这是一种设计模式,它将应用程序的业务逻辑、用户界面和控制...
最新asp.net mvc3.0 在线直播(包涵视频管理)最新asp.net mvc3.0 在线直播(包涵视频管理)最新asp.net mvc3.0 在线直播(包涵视频管理)最新asp.net mvc3.0 在线直播(包涵视频管理)
ASP.NET MVC3.0是微软开发的一个开源框架,用于构建高度可测试和可维护的Web应用程序。这个系列教程旨在帮助开发者全面理解MVC(Model-View-Controller)设计模式,并熟练掌握ASP.NET MVC3.0的使用技巧。下面将详细...
ASP.NET MVC3.0是一个强大的框架,用于构建可维护、高度结构化的Web应用程序。这个实例——"Movies",是学习和理解ASP.NET MVC3.0核心概念的理想实践项目。在这个项目中,我们将深入探讨以下几个关键知识点: 1. **...
### ASP.NET MVC 3.0 初学者指南 #### 一、MVC 模式解析 MVC(Model-View-Controller)模式是一种常见的软件架构模式,尤其在Web开发领域中广泛运用。它将应用程序分为三个核心部分: 1. **模型(Model)**:负责...
ASP.NET MVC3.0 是微软开发的一个开源框架,用于构建高度可测试和可维护的Web应用程序。这个框架结合了ASP.NET的功能性和MVC(模型-视图-控制器)设计模式的优势,提供了更灵活的开发方式。在“ASP.NET MVC3.0图片...
ASP.NET MVC 3.0是微软开发的一个开源框架,用于构建可维护性和可测试性高的Web应用程序。这个框架集成了ASP.NET、Model-View-Controller(MVC)设计模式和Razor视图引擎,提供了丰富的功能和灵活性,使得开发者能够...