ASP.NETMVC3官方示例MusicStore(音乐商店)--简易中文教程前言:本文来源于微软MVC3官方教程.在可以下载到最新版本的源码和英文PDF教程.和英文教程一样,本文将分成十章节来介绍这个音乐商店的建立.导航目录:(一)前期准备,新建MVC项目(二)控制器(三)视图与模型(四)数据访问(五)使用脚手架功能创建编辑页面(六)使用DataAnnotation为模型进行验证(七)成员和权限(八)Ajax刷新效果的购物车(九)注册和支付(十)最终版本修正与发布综述:原文:TheMVCMusicStoreisatutorialapplicationthatintroducesandexplainsstep-by-stephowtouseASP.NETMVCandVisualWebDeveloperforwebdevelopment.We’llbestartingslowly,sobeginnerlevelwebdevelopmentexperienceisokay.Theapplicationwe’llbebuildingisasimplemusicstore.Therearethreemainpartstotheapplication:shopping,checkout,andadministration.翻译:MVC音乐商店是一个示例应用程序,它将一步一步介绍和说明如何使用ASP.NETMVC和VisualWebDeveloper进行Web开发。本教程会慢慢讲解,因此,即使你是一名初学者也没问题。我们要开发的是一个简单的音乐商店,主要包括三个主要功能:购物,支付,管理。原文:VisitorscanbrowseAlbumsbyGenre:翻译:访客可以根据专辑类别浏览唱片原文:Theycanviewasinglealbumandaddittotheircart:翻译:可以查看单个唱片并且加入到购物车:原文:Theycanreviewtheircart,removinganyitemstheynolongerwant:翻译:可以查看购物车,并且移除不需要的商品:原文:ProceedingtoCheckoutwillpromptthemtologinorregisterforauseraccount.翻译:支付订单的时候会提示用户注册或者登陆帐号。原文:Aftercreatinganaccount,theycancompletetheorderbyfillingoutshippingandpaymentinformation.Tokeepthingssimple,we’rerunninganamazingpromotion:everything’sfreeiftheyenterpromotioncode“FREE”!翻译:创建一个帐号之后,示例程序采用“免费代码”支付的方似乎模拟支付过程。(其实这不算翻译啦)原文:Afterordering,theyseeasimpleconfirmationscreen:翻译:订单完成之后会有一个简单的确认界面:Inadditiontocustomer-faceingpages,we’llalsobuildanadministratorsectionthatshowsalistofalbumsfromwhichAdministratorscanCreate,Edit,andDeletealbums:除了访客浏览的界面之外,我们还创建了一个后台管理界面,用于管理唱片的增删查改:前期准备:需要的开发工具:VisualWebDeveloper2010ExpressSP1或者VisualStudio2010SP1SQLServerCompact或者SQLServerAsp.NetMVC3和ASP.NETMVC3ToolsUpdate一份MvcMusicStore-Assets的代码笔者用的是VisualStudio2010SP1+SqlServer2008开发的,上文提到的VisualWebDeveloper2010Express和SQLServerCompact都是免费的,大家可以到微软的官方下载。MVC3这个就是必须的,MVC3中文的安装方式有点麻烦,之后会独立一个文章说明一下怎样安装,急的朋友也可以Google一下怎样安装。笔者之前一直纳闷为什么自己的控制器添加界面和官方教程里面的界面有所不同,后来和朋友沟通才发现,原来少装了一个ASP.NETMVC3ToolsUpdate,这个工具可以让程序员减少编码,是个好东西。MvcMusicStore-Assets这个在下载的压缩包里面有。软件的下载地址:VisualStudioWebDeveloperExpressSP1prerequisites=VWD2010SP1PackASP.NETMVC3ToolsUpdate=MVC3SQLServerCompact4.0–includingbothruntimeandtoolssupport=SQLCE;SQLCEVSTools_4_0ASP.NETMVC3MusicStore简易中文教程.(一)前期准备,新建MVC项目发表于143天前⁄技术研究⁄评论数7新建MVC项目:我们从在VS2010的文件菜单中选择“新建-项目”开始,进入“新建项目”对话框。选择“VisualC#-Web”,选择“ASP.NETMVC3空Web应用程序”,将项目命名为“MvcMusicStore”,按“确定”按纽点击确定按钮之后,将会出现以下对话框。选择空模板,Razor试图引擎,勾选使用HTML5标记点击OK按钮之后,VS就会创建一个新的MVC项目。由下图可以看出,其实这个空模板,并不是真正的完全没有内容。VS2010为我们创建了一个MVC项目的基本框架。对于一些基本的文件夹,ASP.NETMVC规范其命名文件夹用途/Controllers控制器处理来自浏览器的输入,并返回相应页面给用户。/Views存放视图模板。/Models存放数据模型,用于操控数据。/Content存放图片、CSS及其它静态内容。/Scripts存放JavaScript文件。ASP.NETMVC3MusicStore简易中文教程.(二)控制器发表于143天前⁄技术研究⁄评论数10原文:Withtraditionalwebframeworks,incomingURLsaretypicallymappedtofilesondisk.Forexample:arequestforaURLlike“/Products.aspx”or“/Products.php”mightbeprocessedbya“Products.aspx”or“Products.php”file.Web-basedMVCframeworksmapURLstoservercodeinaslightlydifferentway.InsteadofmappingincomingURLstofiles,theyinsteadmapURLstomethodsonclasses.Theseclassesarecalled“Controllers”andtheyareresponsibleforprocessingincomingHTTPrequests,handlinguserinput,retrievingandsavingdata,anddeterminingtheresponsetosendbacktotheclient(displayHTML,downloadafile,redirecttoadifferentURL,etc.).翻译:传统的Web框架,URL通常直接映射到磁盘上的文件。例如:类似”/Products.aspx”或“/Products.php”这样的URL请求,可能直接由“Products.aspx“或”Products.php“文件进行处理。MVCWeb框架使用不同的方式映射URL到服务器代码,MVC将URL映射到类的方法,而这些类被称为“控制器“,由控制器响应和处理HTTP请求、用户输入、接收和保存数据,并且决定如何将响应发回到客户端(显示HTML,下载文件,重定向URL等)。添加HomeController原文:We’llbeginourMVCMusicStoreapplicationbyaddingaControllerclassthatwillhandleURLstotheHomepageofoursite.We’llfollowthedefaultnamingconventionsofASP.NETMVCandcallitHomeController.翻译:我们通过添加一个控制器类来开始我们的MVCMusicStore应用程序,它将用于处理链接到网站首页的请求。遵照ASP.NETMVC的命名约定,我们给这个类取名“HomeController”。右键Controller文件夹,点击添加,然后选择Controller。如下图:接着就会出现一个对话框(如果你没有安装MVCToolsUpdate,对话框将不会是这样)。如下图:添加之后,Controller文件夹会增加一个HomeController.cs的文件,其内容如下1.usingSystem;2.usingSystem.Collections.Generic;3.usingSystem.Linq;4.usingSystem.Web;5.usingSystem.Web.Mvc;6.namespaceMyMusic.Controllers7.{8.publicclassHomeController:Controller9.{10.//11.//GET:/Home/12.publicActionResultIndex()13.{14.returnView();15.}16.}17.}修改Index方法为1.publicstringIndex()2.{3.return“HellofromHome”;4.}启动程序,浏览器访问主页会显示以下效果:添加StoreController重复之前添加HomeController的操作,添加一个StoreController控制器。类似HomeController一样,修改Index方法,并添加另外两个方法,完整代码如下。1.usingSystem;2.usingSystem.Collections.Generic;3.usingSystem.Linq;4.usingSystem.Web;5.usingSystem.Web.Mvc;6.7.namespaceMyMusic.Controllers8.{9.publicclassStoreController:Controller10.{11.//12.//GET:/Store/13.publicstringIndex()14.{15.return“HellofromStore.Index()”;16.}17.//18.//GET:/Store/Browse19.publicstringBrowse()20.{21.return“HellofromStore.Browse()”;22.}23.//24.//GET:/Store/Details25.publi