转载MVC音乐商店实例完整编辑中文版.doc
《转载MVC音乐商店实例完整编辑中文版.doc》由会员分享,可在线阅读,更多相关《转载MVC音乐商店实例完整编辑中文版.doc(163页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、,.目录ASP.NET MVC 音乐商店0.概览2ASP.NETMVC音乐商店-1创建项目7ASP.NETMVC音乐商店-2.控制器10ASP.NETMVC音乐商店-3.视图与模型19ASP.NETMVC音乐商店-4.数据访问41ASP.NETMVC音乐商店-5.通过支架创建编辑表单54ASP.NETMVC音乐商店5.通过支架创建编辑表单续70ASP.NETMVC音乐商店-6.使用DataAnnotations进行模型验证88ASP.NET MVC 音乐商店 - 7.成员管理和授权93ASP.NET MVC 音乐商店 - 8. 使用 Ajax 更新的购物车101ASP.NET MVC 音乐商店
2、 - 9. 注册和结账120ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计135ASP.NET MVC 音乐商店0.概览MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 开发的示例应用程序,我们将从基础知识开始,一步一步地进行介绍,因此,初学者也可以去的很好的学习体验。这个示例程序使用 ASP.NET MVC3 完成,视图部分使用 Razor 引擎,数据库访问使用 EF CodeFirst。这个程序将会创建一个音乐商店,这个程序包括三个主要的部分:购物,结账和管理。用户可以通过分类浏览唱片。可以查看某张唱片,然后加入到
3、购物车中。可以查看购物车,删除其中不再希望购买的项目。在结账的时候,就会提示用户登录,或者注册一个新的账号。创建新帐号创建账号之后,用户可以填写完整的送货和结账信息,为了让这个程序简单一些,如果你在优惠券号中输入 FREE 的话,我们会提示一切免费。下完订单之后,用户会看到一个简单的确认提示。另外,我们还会提供一个管理员用来创建、修改、以及删除唱片的功能。这个项目我们将使用 ASP.NET MVC3 和 Visual Studio 完成。其中的知识涉及到数据访问,表单的提交,数据验证,母版页,布局,以及 AJAX 的更新和验证,用户的登录等等。ASP.NETMVC音乐商店-1创建项目我们的项目
4、从在 Visual Studio 中的文件菜单中选择“新建”,选择“项目”开始。然后,选择 C# 中的 Web 模板组,在右边的项目模板中选择 ASP.NET MVC3 Web 应用程序,在项目的名称输入框中,输入 MvcMusicStore ,点击确定。这时,你会到第二个对话框,允许我们设置这个项目关于 MVC 的一些设置,确认选中了“空”项目模板,视图引擎选中 Razor ,点击确定。这样我们的项目就创建成功了!我们看一下在这个项目都创建了哪些内容。在 ASP.NET MVC 中使用了下面的一些基本的命名约定文件夹功能/Controllers控制器接受来自浏览器的请求,进行处理,然后向用户
5、返回回应/Views视图文件夹保存用户界面的模板/Models这个文件夹定义处理的数据/Content我们的图片,CSS以及其他任何的静态内容放在这里/Scripts放置脚本文件/App_Data数据库文件这些文件夹在一个空的 ASP.NET MVC 应用中也会存在,因为 ASP.NET MVC 的框架默认使用“约定胜于配置”的原则,已经假定这些文件夹有着特定的用途。例如,控制器将会在 Views 文件夹中寻找相应的视图,而不需要你在代码中显式设置,这样可以节省大量的编程工作,也可以使其他的开发人员更加容易理解你的程序。在创建这个程序的过程 中,我们将会详细的说明这些约定。ASP.NETMVC
6、音乐商店-2.控制器在典型的 Web 应用中,用户请求的 URL 地址通常映射到保存在网站中的文件上,例如,当用户请求 /Products.aspx 的时候,或者 /Products.php 的时候,很可能是在通过处理 Products.aspx 或者 Products.php 文件来完成任务。ASP.NET MVC 的处理方式则不同,它没有映射到文件上,相反,将这些 URL 地址映射到类的方法上,这些类被称为“控制器”,控制器用来接受 HTTP 请求,处理用户的输入,获取或者保存数据,其中的处理方法称为 Action,然后将回应发送到客户端,可能是显示了一个 HTML 的网页,下载一个文件,
7、重定向到另外一个地址等等。默认的路由配置在新创建的项目中,打开 Global.asax.cs 文件,可以看到如下的代码。using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Routing;namespace MvcMusicStore / 注意: 有关启用 IIS6 或 IIS7 经典模式的说明, / 请访问 http:/ public class MvcApplication : System.Web.Htt
8、pApplication public static void RegisterGlobalFilters(GlobalFilterCollection filters) filters.Add(new HandleErrorAttribute(); public static void RegisterRoutes(RouteCollection routes) routes.IgnoreRoute(resource.axd/*pathInfo); routes.MapRoute( Default, / 路由名称 controller/action/id, / 带有参数的 URL new c
9、ontroller = Home, action = Index, id = UrlParameter.Optional / 参数默认值 ); / 一般用来进行网站的初始化 protected void Application_Start() System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData(); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoute
10、s(RouteTable.Routes); 其中 RegisterRoutes 方法注册了默认的路由配置,在方法中的 routes.MapRoute 语句中,请求地址将会被看成三个部分组成,controller/action/id,第一部分称为控制器,如果没有提供的话,默认为 Home, 第二部分称为 Action 方法,如果没有提供的话,默认为 Index, 第三部分称为 id, 通常用来提供数据的标识,没有默认值。这样,当请求 / 地址的时候,系统将会把请求映射到名为 Home 的控制器进行处理,调用其中名为 Index 的方法处理请求。增加 HomeController我们的应用商店从增
11、加一个首页的控制器开始,使用默认的命名约定,控制器的名称应该以 Controller 作为后缀,我们将这个控制器命名为 HomeController。在 Controller 文件夹上右击,然后选择“添加”,“控制器(T)”在弹出的对话框中,输入控制器的名字 HomeController,按下“添加”按钮。这样,将会创建一个名为 HomeController.cs 的文件,其中的代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;na
12、mespace MvcMusinStore.Controllers public class HomeController : Controller / / GET: /Home/ public ActionResult Index() return View(); 为了尽可能地简单,我们让 Index 方法简单地返回一个字符串,这个字符串将作为回应内容直接返回浏览器,我们做下面的两个简单修改。 将方法的返回类型修改为string 将返回语句修改为 return Hello form Home;这样,我们的方法将会变成如下的内容public string Index() return Hell
13、o form Home;运行程序现在,可以运行一下了,我们可以启动服务器,使用下面的任何一种方法都可以。 选择“调试”,“启动调试”菜单 点击工具栏上的绿色的箭头按钮 使用键盘快捷方式,F5使用上面的任何一种方法都会导致编译项目,启动 Visual Studio 中内建的 ASP.NET 开发服务器.在屏幕的右下角会弹出一个启动 ASP.NET 开发服务器的提示,Visual Studio 将自动打开一个浏览器窗口,其中的地址指向我们的 Web 服务器,这使得我们可以快速使用我们的程序。Ok, 非常的简单,我们已经创建了一个 Web 站点,写了一个三行的函数,在浏览器中得到了这行文字, 不是很
14、震撼,但这仅仅只是开始。增加 StoreController我们已经为站点增加一个简单的 HomeController 作为首页,现在,增加另外一个控制器,可以用来浏览我们的音乐商店,我们的商店控制器将要支持三个场景: 列出商店中的唱片的分类 浏览商店中某个分类中的唱片列表 显示特定唱片的详细信息我们从增加一个新的 StoreController 开始,先停止刚才的程序,可以直接关闭浏览器,或者也可以在调试菜单中,选择停止调试。现在,增加一个新的 StoreController,像在 HomeController 中做的一样,我们在 Controllers 文件夹上右健,选择“添加”,“控制器
15、”.新的 StoreController 控制器中已经包含了 Index 方法,我们使用这个方法来实现列出所有分类的列表,我们还会再增加两个额外的方法来实现其他的场景:浏览和明细。这些包含在控制器中的方法,我们称为控制器中的 Action,像你在前面看到的,HomeController 中的 Index 方法就是一个 Action,这些 Action 的作用就是处理请求,然后返回对请求的处理结果。对于我们的 StoreController ,首先让 Index 这个 Action 返回一个“Hello” 串,然后,增加两个方法:Browse() 和 Detials()using System;
16、using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MvcMusinStore.Controllers public class StoreController : Controller / / GET: /Store/ public string Index() return Hello from Store.Index(); public string Browse() return Hello from Store.Browse(); publ
17、ic string Details() return Hello from Store.Details(); 重新运行程序,现在已经可以访问这些地址了。 /Store /Store/Browse /Store/Details太棒了,但是现在仅仅能够返回一些常量的字符串,让我们将它们变成动态的,我们从 URL 中获取一些信息,然后把他们显示在返回的页面中。首先,修改我们的 Browse 这个 Action,使得它可以从 URL 地址中获取查询信息,为方法增加一个名为“genre” 的字符串类型参数,当我们这样做的时候,ASP.NET MVC 就会自动把任何名为 genre 的请求参数的值赋予这个
18、参数。/ GET: /Store/Browse?genre=?Discopublic string Browse(string genre) string message = HttpUtility.HtmlEncode(Store.Browse, Genre = + genre); return message; 注意:我们使用了HttpUtility.HtmlEncode 方法来处理用户的输入,这样可以防止用户的脚本注入攻击。例如:/Store/Browse?Genre=window.location=http:/.现在,我们在浏览器中访问一下:/Store/Browse?Genre=Di
19、sco下一步,我们处理 Details 这个 Action,使它能够处理名为 ID 的整数类型参数。这次,我们不再在请求参数中传递这个整数,而是嵌在请求的 URL 地址中。例如:/Store/Details/5。在 ASP.NET MVC 中,我们可以轻易地完成这个任务而不需要配置任何东西,ASP.NET MVC 默认的路由约定会将跟在 Action 方法之后的部分看作名为 ID 的参数的值,如果你的 Action 方法有一个名为 ID 的参数,那么,ASP.NeT MVC 就会自动将这部分作为参数传送给 Action 方法,需要注意的是,MVC 可以帮助你完成数据类型之间的转换,所以,地址的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 转载 mvc 音乐 商店 实例 完整 完全 编辑 编纂 中文版
限制150内