ASP.NETMVC3快速入门知识_第1页
ASP.NETMVC3快速入门知识_第2页
ASP.NETMVC3快速入门知识_第3页
ASP.NETMVC3快速入门知识_第4页
ASP.NETMVC3快速入门知识_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ASP.NETMVC3快速入门-第一节概述 (20011-02-23 20:57:18) HYPERLINK javascript:; 转载标签: HYPERLINK /c.php?t=blog&k=web%D3%A6%D3%C3%B3%CC%D0%F2&ts=bpost&stype=tag web应用用程序分类: HYPERLINK /s/articlelist_1792358825_4_1.html AASP.NETTMVCC31.1本教程程的学习习内容在在本教程程中,你你将学会会如下内内容:如何创建一一个ASSP.NNET MVCC的工程程。如何创建AASP.NETT MVVC的控控制器

2、(cconttrolllerr)与视视图(vvieww)。如何使用EEntiity Fraamewworkk coode-firrst 范例来来创建一个个新的数数据库。如何获取和和显示数据据。如何编辑数数据并且且进行数据据的有效效性验证证。1.2创建工程程如如果要创创建一个个ASPP.NEET MMVC33的工程程时,首首先运行行Vissuall Weeb DDeveelopper 20110 EExprresss(本教教程中简简称“VVisuual Webb Deevellopeer”),并且在在起始页页(sttartt paage)中选择择“新建建项目”。Visual Web Develo

3、per是一个集成开发环境,你可以使用它来进行各种应用程序的开发。在Visual Web Developer的菜单的下面有一个工具条,可以直接点击工具条中的各个工具按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击“文件”菜单中的“新建项目”菜单项。图1-1Vissuall Weeb DDeveelopper 20110 EExprresss中的起起始页1.3创建你的的第一个个应用程序序你你可以使使用Viisuaal BBasiic 或或Vissuall C#作为开开发语言言来创建建应用程程序。在在本教程程中,选选择C#来作为为开发语语言。点点击“新新建项目目”菜单

4、单项后,在在打开的的“新建建项目”对对话框中中,双击击左边的的“Viisuaal CC#”使使其成为为展开状状态,然然后点击击“Weeb”,点点击右边边的“AASP.NETT MVVC 33 Weeb 应应用程序序”,然然后在下下方的名名称文本本框中填填入应用用程序的的名称,在在本教程程中命名名为“MMvcMMoviie”,然后点点击确定定按钮。图1-2在新建建项目对对话框中中选择AASP.NETT MVVC3应应用程序序并为应应用程序序命名在在接下来来打开的的“新AASP.NETT MVVC 33 项目目”对话话框中,点点击选中中“Innterrnett 应用用程序”,在在“视图图引擎”下下

5、拉框中中保持默默认的“RRazoor”选选项不作作修改(RRazoor视图图是ASSP.NNET MVCC3种新新增的一一种十分分重要的的视图类类型,使使用它可可以使得得Webb应用程程序的开开发变得得更加方方便快捷捷,在后后文中将将对此进进行详细细介绍)。图1-3选择项项目模板板与视图图引擎点点击确定定按钮,VVisuual Webb Deevellopeer会为为你所创创建的AASP.NETT MVVC项目目提供一一个默认认模板,这这样的话话你就拥拥有了一一个可以以立刻运运行的应应用程序序。默认认的模板板中提供供的是一一个很简简单的显显示“欢欢迎使用用 ASSP.NNET MVCC!”文文

6、字的应应用程序序,你可可以以此此作为你你的开发发起点。图1-4Vissuall Weeb DDeveelopper提提供了一一个默认认的应用用程序模模板点点击“调调试”菜菜单中的的“启动动调试”菜菜单项(该该菜单项项的快捷捷键为FF5),VVisuual Webb Deevellopeer将启启动一个个内置的的服务器器,并且且在该服服务器中中打开当当前Weeb应用用程序的的主页,如如图1-5所示示。图1-5 ASPP.NEET MMVC33的默认认应用程程序模板板的调试试画面请请注意该该页面在在浏览器器中的地地址为“hhttpp:/loccalhhostt:44423/”。其其中“llocaa

7、lhoost”代代表了本本机上你你刚刚创创建的WWeb应应用程序序的临时时网站地地址,444233代表了了Vissuall Weeb DDeveelopper使使用的一一个随机机端口,每每次调试试的时候候,Viisuaal WWeb Devvelooperr都会使使用这个个端口来来作为内内置服务务器的端端口号。在在各计算算机上,该该端口号号都是不不相同的的,因为为该端口口号是VVisuual Webb Deevellopeer随机机选择的的。在在这个模模板应用用程序的的页面的的右上角角,提供供了两个个按钮与与一个“登登录”链链接,点点击“登登录”链链接,页页面跳转转到登录录页面,点点击“主主页

8、”按按钮,页页面返回回到主页页,点击击“关于于”按钮钮,页面面跳转到到“关于于”页面面。接接下来,让让我们开开始逐步步将这个个默认的的应用程程序修改改为我们们所要的的应用程程序,在在这个过过程中逐逐步了解解ASPP.NEET MMVC 3的有有关知识识。首先先,让我我们关闭闭浏览器器并开始始代码的的修改工工作。ASP.NNETMVCC3快速入入门第二节节添加一一个控制制器 (20011-02-24 19:39:57) HYPERLINK javascript:; 转载标签: HYPERLINK /c.php?t=blog&k=%BF%D8%D6%C6%C6%F7&ts=bpost&stype=

9、tag 控制器 HYPERLINK /c.php?t=blog&k=%D4%D3%CC%B8&ts=bpost&stype=tag 杂谈分类: HYPERLINK /s/articlelist_1792358825_4_1.html AASP.NETTMVCC3MMVC的的全称为为moddel-vieew-cconttrolllerr(模型型-视图图-控制制器)。MMVC是是一种开开发应用用程序的的模式,这这个模式式已经具具有了很很好的框框架架构构,并且且十分容容易维护护。使用用MVCC开发出出来的应应用程序序一般包包括以下下几块内内容:控制器(CConttrolllerr):控控制器类类处理

10、客客户端向向Webb应用程程序发出出的请求求,获取取数据,并并指定返返回给客客户端,用用来显示示处理结结果的视视图。模型(Moodell):模模型类代代表了应应用程序序的数据据,这些些数据通通常具有有一个数数据验证证逻辑,用用来使得得这些数数据必须须符合业业务逻辑辑。视图(Viiew):视图类是Web应用程序中用来生成并显示HTML格式的服务器端对客户端请求的响应结果的模板文件。在本教程中中,将全全面介绍绍这些概概念,并并且向你你展示如如何利用用它们来来搭建一一个应用用程序。首首先,让让我们来来创建一一个控制制器(cconttrolllerr)类。在在解决方方案资源源管理器器中,鼠鼠标右击击C

11、onntroolleers文文件夹,并并且点击击添加-控制制器,如如图2-1所示示。图2-1 添加控控制器在在弹出的的“添加加控制器器”对话话框中,将控制制器命名名为“HHellloWoorlddConntroolleer”,然后点点击添加加按钮,如如图2-2所示示。图2-2 命名控控制器观观察解决决方案资资源管理理器中新新增加了了一个文文件,名名字为HHellloWoorlddConntroolleer.ccs,并并且该文文件呈打打开状态态,如图图2-33所示。修修改打开开的HeellooWorrldCConttrolllerr.css文件,在在HellloWWorlldCoontrroll

12、ler类类中,创创建如代代码清单单2-11中所示示的两个个方法,控控制器将将返回一一个HTTML格格式的字字符串。代代码清单单2-11 在控控制器中中创建方方法publiic cclasss HHellloWoorlddConntroolleer : Coontrrolller/ GGET: /HHellloWoorldd/ppubllic strringg Inndexx()retturnn 这这是我的的默认aactiion;/ GGET: /HHellloWoorldd/Weelcoome/ppubllic strringg WeelCoome()retturnn 这这是我的的Wellco

13、mme方法法;在在这个修修改后的的HellloWWorlldCoontrrolller控控制器中中,第一一个方法法名为IIndeex。现现在让我我们从浏浏览器中中调用该该方法。运运行应用用程序(按按F5键键或Cttrl+F5键键),在在打开的的浏览器器中的地地址栏后后面,添添加“HHellloWoorldd”路径径(譬如如,在我我的计算算机上,浏浏览器中中地址为为htttp:/loocallhosst:444233/HeellooWorrld),画画面显示示如图22-4所所示。由由于在IIndeex方法法中,直直接返回回了一个个HTMML格式式的字符符串,所所以在浏浏览器中中将该字字符串显显示

14、出来来。图2-4 HellloWWorlldCoontrrolller控控制器中中Inddex方方法的运运行结果果在ASP.NETT MVVC中,可可以根据据浏览器器中的输输入地址址来调用用不同的的控制器器或控制制七种不不同的方方法。AASP.NETT MVVC的默默认的映映射逻辑辑使用如如下所示示的格式式来决定定应该调调用什么么控制器器或控制制器中的的什么方方法。/Conntroolleer/AcctioonNaame/PParaametterssUURL地地址的第第一部分分决定调调用哪个个控制器器类,所所以“/HellloWWorlld”映映射到HHellloWoorlddConntroo

15、lleer控制制器类。第二部分决定调用控制器中的哪个方法。所以“/HelloWorld/Index”将会调用HelloWorldController控制器类的Index方法。由于Index方法是控制器类的默认方法(可以另外指定控制器类的默认方法),所以也可只输入“/HelloWorld”来调用该方法。在在浏览器器的地址址栏中,输输入“hhttpp:/loccalhhostt:xxxxx/HellloWWorlld/WWelccomee”,将将会调用用HellloWWorlldCoontrrolller控控制器类类的Weelcoome方方法,该该方法返返回“这这是我的的Wellcomme方法法”

16、文字字,所以以浏览器器中显示示该文字字,如图图2-55所示。图2-5 HellloWWorlldCoontrrolller控控制器中中Wellcomme方法法的运行行结果接接下来,让让我们修修改Weelcoome方方法,以以便在UURL地地址栏中中可以传传递一些些参数给给该方法法(例如如:/HHellloWoorldd/Weelcoome?namme=SScottt&nnumttimees=44)。修修改后的的代码如如下所示示。注意意这里我我们使用用了C#的可选选参数,当当URLL地址中中没有使使用nuumtiimess参数时时,该参参数被默默认设定定为1。publiic sstriing W

17、ellcomme(sstriing namme,iint nummTimmes=1)rretuurn HtttpUttiliity.HtmmlEnncodde(Helllo + naame + ,NuumTiimess iss: + nnumTTimees);运运行该应应用程序序,在浏浏览器中中输入“hhttpp:/loccalhhostt:xxxxx/HellloWWorlld/WWelccomee?naame=Scoott&nummtimmes=4”,运运行结果果显示如如图2-6所示示。浏览览器自动动将URRL地址址栏中的的参数映映射成WWelccomee方法中中的传入入参数。图2-6在W

18、eelcoome方方法中使使用参数数到现在为止止,我们们展示了了MVCC中的“VC”(视图图与控制制器)部部分的工工作机制制,控制制器返回回HTMML字符符串。很很显然大大多数情情况下你你不想让让控制器器直接返返回HTTML字字符串,因因为那样样的话编编码起来来就太麻麻烦了。所所以我们们需要使使用不同同的视图图模板文文件来帮帮助生成成HTMML格式式的页面面文件,在在下一节节中让我我们来看看一下如如何在AASP.NETT MVVC3中中使用视视图。ASP.NNETMVCC3快速入入门-第第三节添加一一个视图图 (20011-02-26 18:58:25) HYPERLINK javascrip

19、t:; 转载标签: HYPERLINK /c.php?t=blog&k=%CA%D3%CD%BC&ts=bpost&stype=tag 视图 HYPERLINK /c.php?t=blog&k=%C4%A3%B0%E5&ts=bpost&stype=tag 模板 HYPERLINK /c.php?t=blog&k=%D3%A6%D3%C3%B3%CC%D0%F2&ts=bpost&stype=tag 应用程序 HYPERLINK /c.php?t=blog&k=%BF%D8%D6%C6%C6%F7&ts=bpost&stype=tag 控制器分类: HYPERLINK /s/articleli

20、st_1792358825_4_1.html AASP.NETTMVCC33.1添加一一个视图图在在本节中中我们修修改HeellooWorrldCConttrolllerr类,以以便使用用视图来来向客户户端展示示HTMML格式式的响应应结果。我们使用AASP.NETT MVVC3中中新增的的Razzor视视图引擎擎来创建建视图。RRazoor视图图模板文文件的后后缀名为为.csshtmml,它它提供了了一种简简洁的方方式来创创建HTTML输输出流。RRazoor视图图大大减减少了在在书写视视图模板板文件时时所需要要输入的的字符,提提供了一一个最快快捷,最最简便的的编码方方式。这这里,我我们在H

21、HellloWoorlddConntroolleer类的的Inddex方方法中添添加使用用一个视视图。在在修改前前的Inndexx方法中中返回一一个字符符串,我我们修改改这个方方法来使使它返回回一个视视图,代代码如下下所示。publiic AActiionRResuult Inddex()retturnn Viiew();这这段代码码表示IIndeex方法法使用一一个视图图模板来来在浏览览器中生生成HTTML格格式的页页面文件件。接着着,让我我们来添添加一个个Inddex方方法所使使用的视视图模板板。在IIndeex方法法中点击击鼠标右右键,然然后点击击“添加加视图”,将将会弹出出一个“添添加

22、视图图”对话话框。图3-1 添加视视图图3-2添加视视图对话话框在在该对话话框中,不不做任何何修改,直直接点击击添加按按钮,观观察解决决方案资资源管理理器中,在在MvccMovvie项项目下的的Vieews文文件夹下下创建了了一个HHellloWoorldd文件夹夹,并且且在该文文件夹中中创建了了一个IIndeex.ccshttml文文件,同同时该文文件呈打打开状态态,如图图3-33所示。图3-3视图模模板文件件被创建建并呈打打开状态态让让我们在在该文件件中追加加一些文文字,代代码如代代码清单单3-11所示。代代码清单单3-11 Inndexx.csshtmml视图图模板文文件VViewwBa

23、gg.Tiitlee = 首页页;首首页这是是我的第第一个视视图模板板运运行应用用程序,输输入地址址“htttp:/llocaalhoost:xxxxx/HHellloWoorldd”。由由于在IIndeex方法法中并没没有做任任何事情情,只是是简单地地一行代代码“rretuurn Vieew()”,该该行代码码表示我我们使用用一个视视图模板板文件来来在浏览览器中展展示响应应结果。因因为我们们并没有有显式指指定使用用哪个视视图模板板文件,所所以使用用了默认认的Viiewss文件夹夹下的HHellloWoorldd文件夹夹下的IIndeex.ccshttml视视图模板板文件。该该视图模模板文件件

24、中只有有简单的的两行文文字,在在浏览器器中的显显示结果果如图33-4所所示。图3-4在浏览览器中显显示视图图看看上去还还不错,但但是请注注意,该该网页的的标题为为“首页页”,但但是网页页中的大大标题文文字却为为“我的的MVCC应用程程序”,需需要修改改一下。3.2修改视图图,修改改应用程序序的页面布局首首先,让让我们修修改页面面大标题题中的“我我的MVVC应用用程序”文文字。这这段文字字是所有有页面中中的公共共大标题题,在这这个应用用程序中中,虽然然所有页页面中都都显示了了这个共共同的大大标题,但但只有一一处地方方对其进进行了设设置。打打开解决决方案资资源管理理器中VViewws文件件夹下的的

25、Shaaredd文件夹夹下的_Layyoutt.csshtmml文件件。该文文件被称称为布局局页面,位位于公有有文件夹夹Shaaredd下,被被所有其其他网页页所共用用。图3-5公有布布局页面面布布局模板板页允许许你统一一在一个个地方指指定整个个Webb应用程程序或WWeb网网站的所所有HTTML页页面的布布局方法法。请注注意文件件底部的的“RRendderBBodyy()”代代码行。RenderBody()是一个占位符,代表了所有你创建出来的实际应用的视图页面,在这里统一指定。将布局模板文件中的“我的 MVC 应用程序”修改为“我的 MVCMovie 应用程序”。代码如下所示。我的MVCCM

26、ovvie应用程程序运运行应用用程序,注注意网页页中的大大标题被被修改为为“我的的 MVVCMooviee 应用用程序”。点点击“关关于”链链接,你你可以看看见“关关于”页页面中的的大标题题也被修修改为“我我的 MMVCMMoviie 应应用程序序”。由由此可以以看出一一旦修改改了布局局页面中中的某处处地方,该该修改将将会被应应用到所所有页面面中。图3-6 在布局局页面中中修改了了网页中中显示的的大标题题完完整的_Layyoutt.csshtmml文件件中的代代码如代代码清单单3-22所示。代代码清单单3-22 _LLayoout.cshhtmll文件中中的完整整代码ViiewBBag.Tit

27、tle我的的MVCCMovvie应用程程序Httml.Parrtiaal(_LoogOnnParrtiaal)HHtmll.AcctioonLiink(主页页, Inndexx, Hoome)HHtmll.AcctioonLiink(关于于, Abboutt, Hoome)ReendeerBoody()现现在,让让我们修修改Inndexx视图页页面的标标题。打打开Viiewss文件夹夹下的HHellloWoorldd文件夹夹下的IIndeex.ccshttml文文件。这这里我们们修改两两处地方方:首先先,修改改浏览器器中的标标题,然然后修改改标签签中的小小标题文文字。修修改后代代码如代代码清单

28、单3-33所示。代代码清单单3-33 修改改后的IIndeex.ccshttml视视图模板板文件VViewwBagg.Tiitlee = 电影影清单;我我的电影影清单这是是我的第第一个视视图模板板VViewwBagg对象的的Tittle属属性代表表了显示示该页面面时的浏浏览器中中的标题题文字。让让我们回回头看一一下布局局模板文文件,在在该文件件的区段段中的标签中中使用了了这个值值来作为为浏览器器中的网网页标题题。同时时,通过过这种方方法,你你可以很很容易地地在你的的视图模模板文件件与布局局模板文文件之间间进行参参数的传传递。运运行应用用程序,在在地址栏栏中输入入“htttp:/llocaalh

29、oost:xxxxx/HHellloWoorldd”,注注意浏览览器中的的网页标标题,页页面中的的小标题题文字都都变为修修改后的的标题文文字(如如果没有有发生变变化的话话,则可可能你的的网页被被缓存住住了,可可以按CCtrll+F55键来在在重新刷刷新页面面时取消消缓存)。同同时也请请注意_Layyoutt.csshtmml文件件中的占占位符中中的内容容被替换换成了IIndeex.ccshttml视视图模板板中的内内容,所所以浏览览器中展展示的是是一个单单一的HHTMLL文件。浏浏览器中中的运行行结果如如图3-7所示示。图3-7 修改了了标题后后的Inndexx视图模模板文件件此此处,我我们的

30、数数据(“这这是我的的第一个个视图模模板”文文字)是是被直接接书写在在文件中中的,也也就是说说我们使使用到了了MVCC应用程程序的“VV”(视视图Viiew)与“CC”(控控制器CConttrolllerr)。接接下来,我我们讲解解一下如如何创建建一个数数据库并并从该数数据库中中获取模模型数据据。3.3将控制制器中的的数据传传递给视视图在在我们使使用数据据库并介介绍模型型之前,首首先我们们介绍一一下如何何将控制制器中的的信息传传递给视视图。浏浏览器接接收到一一个URRL请求求后,将将会调用用控制器器类来进进行响应应。你可可以在控控制器类类中进行行对接收收到的页页面参数数进行处处理的代代码,你你

31、可以在在控制器器类中书书写从数数据库中中获取数数据的代代码,你你也可以以在控制制器类中中书写代代码来决决定返回回给客户户端什么么格式的的响应文文件。控控制器可可以利用用视图模模板文件件来生成成HTMML格式式的响应应文件并并显示在在浏览器器中。控控制器类类负责提提供视图图模板文文件在生生成HTTML格格式的响响应文件件时所需需要的任任何数据据或对象象。一个个视图模模板文件件不应该该执行任任何业务务逻辑,也也不应该该直接和和数据库库进行交交互。它它只能和和控制器器类进行行交互,获获取控制制器类所所提供给给它的数数据,这这样可以以使你的的代码更更加清晰晰,容易易维护。现现在在我我们的应应用程序序中

32、,HHellloWoorlddConntroolleer控制制器类中中的Weelcoome方方法带有有两个参参数nnamee与nuumTiimess,Weelcoome方方法直接接向浏览览器输出出这两个个参数的的参数值值。这里里,我们们修改该该方法使使其不再再直接输输出数据据,而是是使用一一个视图图模板。该该视图模模板将生生成一个个动态的的响应流流,这意意味着我我们需要要将数据据从控制制器类传传递给视视图以便便利用该该数据来来生成该该响应流流。我们们在该控控制器类类中将视视图模板板所需要要的数据据送入一一个ViiewBBag对对象中,该该对象可可以被视视图模板板直接接接收。打打开Heelloo

33、WorrldCConttrolllerr.css文件,修修改Weelcoome方方法,在在该方法法中为VViewwBagg对象添添加一个个Messsagge属性性与NuumTiimess属性,并并且将属属性值分分别设定定为经过过处理后后的naame参参数值与与nummTimmes参参数值。VViewwBagg对象是是一个动动态对象象,你可可以为它它添加任任何属性性并赋上上属性值值。在未未赋值之之前该属属性是不不生效的的,直到到你赋值值为止。修修改后的的HellloWWorlldCoontrrolller.cs文文件中的的代码如如代码清清单3-4所示示。代代码清单单3-44 修改改后的HHell

34、loWoorlddConntroolleer.ccs文件件usingg Syysteem.WWeb;usingg Syysteem.WWeb.Mvcc;namesspacce MMvcMMoviie.CConttrolllerrsppubllic claass HellloWWorlldCoontrrolller : CConttrolllerr/ GETT: /HellloWWorlld/pubblicc AcctioonReesullt IIndeex()retturnn Viiew();/ GETT: /HellloWWorlld/WWelccomee/pubblicc Acctioon

35、Reesullt WWelccomee(sttrinng nnamee, iint nummTimmes = 11)VieewBaag.MMesssagee = Heelloo + nnamee;VieewBaag.NNumTTimees = nuumTiimess;retturnn Viiew();现现在ViiewBBag对对象中已已经包含含了数据据,它将将被自动动传递给给视图。接接下来,我我们需要要创建一一个Weelcoome视视图模板板。在“调调试”菜菜单中,点点击“生生成 MMvcMMoviie”将将应用程程序进行行编译,如如图3-8所示示。图3-8编译应应用程序序接接下来,在在Wel

36、lcomme方法法中点击击鼠标右右键,然然后点击击“添加加视图”,弹弹出对话话框如图图3-99所示。图3-9 为Weelcoome方方法添加加视图在在该对话话框中不不做任何何修改,直直接点击击添加按按钮, Vieew文件件夹下的的HellloWWorlld文件件假种自自动被创创建了一一个Weelcoome.cshhtmll文件,打打开该文文件,在在元素素下添加加代码,让让浏览器器显示UURL地地址中传传入的nnamee参数中中设定的的文字,显显示次数数等于UURL地地址中传传入的nnumTTimees参数数中设定定的次数数。修改改后的WWelccomee.csshtmml文件件中的代代码如代代

37、码清单单3-55所示。代代码清单单3-55 修改改后的WWelccomee.csshtmml文件件VViewwBagg.Tiitlee = Weelcoome;WWelccomeefor (innt ii = 0; i ViiewBBag.NummTimmes; i+)ViiewBBag.Messsagge运行行应用程程序,并并且在地地址栏中中输入“htttp:/loocallhosst:xxx/HHellloWoorldd/Weelcoome?namme=SScottt&nnumttimees=44”,该地地址栏中中的页面面参数将将会自动动传递给给控制器器。控制制器将会会把这些些参数值值放入

38、VViewwBagg对象中中并且传传递给视视图。视视图再在在浏览器器中显示示这些数数据。图3-100 视图图中显示示从控制制器类中中传递过过来的数数据这这里,我我们使用用了模型型“M”的一一种方式式,但是是不是数数据库的的方式。在在下一节节中,我我们将创创建一个个数据库库,并且且介绍如如何对该该数据库库中的数数据进行行处理。ASP.NNETMVCC3快速入入门-第第四节添加一一个模型型 (20011-02-27 20:04:47) HYPERLINK javascript:; 转载标签: HYPERLINK /c.php?t=blog&k=%CA%FD%BE%DD%BF%E2&ts=bpost

39、&stype=tag 数据库 HYPERLINK /c.php?t=blog&k=%B6%D4%BB%B0%BF%F2&ts=bpost&stype=tag 对话框 HYPERLINK /c.php?t=blog&k=%D4%D3%CC%B8&ts=bpost&stype=tag 杂谈分类: HYPERLINK /s/articlelist_1792358825_4_1.html AASP.NETTMVCC3在在本节中中我们将将追加一一些类来来管理数数据库中中的电影影。这些些类将成为为我们的的MVCC应用程程序中的的“模型型”部分分。我我们将使使用一个个.NEET FFrammewoork的的

40、被称之之为“EEntiity Fraamewworkk”的数数据访问问技术来来定义这这些模型型类,并并使用这这些类来来进行操操作。EEntiity Fraamewworkk(通常常被简称称为“EEF”)支支持一个个被称之之为“ccodee-fiirstt”的开开发范例例。Coode-firrst允允许你通通过书写写一些简简单的类类来创建建模型对对象。你你可以通通过访问问这些类类的方式式来访问问数据库库,这是是一种非非常方便便快捷的的开发模模式。4.1利用NNuGeet来安安装EFFCoddeFiirstt我我们可以以利用NNuGeet包管管理器(安安装ASSP.NNET MVCC3时会会自动安

41、安装)来来把EFFCoddeFiirstt类库添添加到我我们的MMvcMMoviie工程程中。这这个类库库使得我我们可以以直接使使用coode-firrst。点点击“工工具”菜菜单下的的“Liibraary Pacckagge MManaagerr”子菜菜单下的的“Addd LLibrraryy Paackaage Reffereencee”菜单单选项,如图44-1所所示。图4-1 使用NNuGeet包管管理器点点击“AAdd Libbrarry PPackkagee Reeferrencce”菜菜单选项项后,将将会弹出出一个对对话框,标标题为“AAdd Libbrarry PPackkage

42、e Reeferrencce”,如如图4-2所示示。图4-2“Addd Liibraary Pacckagge RRefeerennce”对话框框默默认状态态下,左左边的“Alll”选项处处于选择择状态。因因为还没没有安装装任何包包,所以以右边面面板中显显示“找不到到任何项项”。点击击左边面面板中的的“onllinee”选项,NNuGeet包管管理器将将会在服服务器上上检索所所有当前前能够获获取的包包,如图图4-33所示。图4-3 NuGGet包包管理器器正在检检索包信信息服服务器上上有几百百个当前前能够获获取的包包,现在在我们只只关注EEFCoodeFFirsst包。在在右上角角的搜索索输入

43、框框中输入入“EFFCodde”。在在检索结结果中,选选择EFFCoddeFiirstt包,并并且点击击Insstalll按钮钮安装包包,如图图4-44所示。图4-4 选择EEFCoodeFFirsst包并并安装点点击了iinsttalll按钮后后,会弹弹出一个个接受许许可证窗窗口,如如图4-5所示示,在这这个窗口口中必须须要点击击“I Accceptt”按钮钮,接受受许可证证条款,安安装才能能继续进进行。图4-5 接受许许可证窗窗口安安装完毕毕后,点点击cllosee按钮。我我们的MMvcMMoviie工程程中会自自动加载载EnttityyFraamewworkk程序集集,其中中包含了了EF

44、CCodeeFirrst类类库。图4-6安装完完毕后EEntiityFFrammewoork程程序集被被自动加加载4.2添加模模型类在在解决方方案资源源管理器器中,鼠鼠标右击击Moddelss文件夹夹,点击击“添加加”菜单单下的“类”,如图4-7所示。图4-7 添加模模型类点点击“类类”菜单单项后,会会弹出“添添加新项项”对话话框,在在该对话话框中将将类名命命名为“Movie”,如图4-8所示。图4-8 在“添添加新项项”对话话框中为为类命名名然然后点击击添加按按钮,观观察解决决方案资资源管理理器中,MModeels文文件夹下下添加了了一个MMoviie.ccs类定定义文件件,并且且该文件件呈

45、打开开状态,如如图4-9所示示。图4-9 Movvie.cs类类定义文文件已被被添加并并呈打开开状态在在Movvie.cs文文件中追追加如下下所示的的五个属属性。publiic cclasss MMoviieppubllic intt IDD gett; sset; pubblicc sttrinng TTitlle geet; sett; pubblicc DaateTTimee ReeleaaseDDatee gett; sset; pubblicc sttrinng GGenrre geet; sett; pubblicc deecimmal Priice gget; seet; 我我们

46、将利利用Mooviee类来代代表数据据库中的的movvie(电影)。每一一个Mooviee对象的的实例对对应于数数据表中中的一行行,Mooviee类中的的每一个个属性被被映射到到数据表表的每一一列。在在同一个个Movvie.cs文文件中,追加如如下所示示的MoovieeDBCConttextt类。publiic cclasss MMoviieDBBConntexxt : DbbConntexxtppubllic DbSSet Mooviees geet; sett; MMoviieDBBConntexxt类代代表了EEntiity Fraamewworkk中的mmoviie数据据库的上上下文对

47、对象,用用来处理理数据的的存取与与更新。MMoviieDBBConntexxt对象象继承了了Enttityy Frrameeworrk中的的DbCConttextt基础类类。为了了能够引引用DbbConntexxt类,你你需要在在Movvie.cs文文件的头头部追加加如下所所示的uusinng语句句。usingg Syysteem.DDataa.Enntitty;完完整的MMoviie.ccs文件件中的代代码如代代码清单单4-11所示。代代码清单单4-11 完整整的Mooviee.css文件usingg Syysteem;usingg Syysteem.DDataa.Enntitty;name

48、sspacce MMvcMMoviie.MModeelsppubllic claass Movviepubblicc innt IID geet; sett; pubblicc sttrinng TTitlle geet; sett; pubblicc DaateTTimee ReeleaaseDDatee gett; sset; pubblicc sttrinng GGenrre geet; sett; pubblicc deecimmal Priice gget; seet; ppubllic claass MovvieDDBCoonteext : DDbCoonteextpubblicc

49、 DbbSett MMoviies gget; seet; 如如果要从从数据库库中存取取数据,类类似以上上所示的的代码是是必须要要写的。在下一节中,我们将要创建一个新的MoviesController类,用来显示数据库中的数据,并且允许用户创建一个新的movie(电影)的列表。ASP.NNETMVCC3快速入入门-第第五节从控制制器访问问模型中中的数据据 (20011-03-05 17:07:04)标签: HYPERLINK /c.php?t=blog&k=%CA%D3%CD%BC&ts=bpost&stype=tag 视图 HYPERLINK /c.php?t=blog&k=%BF%D8%D

50、6%C6%C6%F7&ts=bpost&stype=tag 控制器 HYPERLINK /c.php?t=blog&k=%C4%A3%D0%CD&ts=bpost&stype=tag 模型 HYPERLINK /c.php?t=blog&k=%D4%D3%CC%B8&ts=bpost&stype=tag 杂谈分类: HYPERLINK /s/articlelist_1792358825_4_1.html AASP.NETTMVCC35.1从从控制器器访问模模型中的的数据在在本节中中,我们们将要创创建一个个新的MMoviiesCConttrolllerr类,并并且书写写代码来来获取数数据库中中的

51、数据据,并通通过视图图模板来来显示在在浏览器器中。鼠鼠标右击击Conntroolleers文文件夹,点点击“添添加”菜菜单下的的“控制制器”菜菜单项,将将会弹出出一个“添添加控制制器”对对话框,如如图5-1所示示。图5-1 添加控控制器在在该对话话框中将将控制其其命名为为MovviessConntroolleer,然然后点击击添加按按钮,该该对话框框被关闭闭。观察察解决方方案资源源管理器器中,CConttrolllerrs文件件夹下增增加了一一个名为为MovviessConntroolleer.ccs的文文件,并并且呈打打开状态态。让我我们更新新MovviessConntroolleer类中中

52、的Inndexx方法,以以便获取取movvie(电影)清单。这这里需要要注意的的是,为为了引用用我们前前面创建建的MoovieeDBCConttextt类,你你需要在在文件头头部追加加如下所所示的两两个ussingg语句。usingg MvvcMooviee.Moodells;usingg Syysteem.LLinqq;修修改MoovieesCoontrrolller类类中的代代码为代代码清单单5-11中所示示代码。代代码清单单5-11 MoovieesCoontrrolller类类中的完完整代码码usingg MvvcMooviee.Moodells;usingg Syysteem.LLi

53、nqq;usingg Syysteem;usingg Syysteem.WWeb.Mvcc;namesspacce MMvcMMoviie.CConttrolllerrsppubllic claass MovviessConntroolleer : CoontrrolllerMovvieDDBCoonteext db = nnew MovvieDDBCoonteext();pubblicc AcctioonReesullt IIndeex()varr mooviees=ffromm m in db.Movviesswheere m.RReleeaseeDattennew DatteTiime(

54、19884,66,1)sellectt m;retturnn Viiew(movviess.TooLisst();这这段代码码实施了了一个LLINQQ查询来来获取119844年夏天天之后发发行的所所有电影影。我们们还需要要一个视视图模板板来显示示这个电电影清单单,所以以在Inndexx方法内内点击鼠鼠标右键键,然后后点击“添添加视图图”来添添加一个个视图。由由于这里里我们需需要将一一个Mooviee类传递递给视图图,所以以在“添添加视图图”对话话框中,与与本教程程中前几几次在该该对话框框中之行行的操作作有所不不同,前前几次我我们都是是直接点点击添加加按钮来来创建一一个空白白的视图图模板,但但是

55、这一一次我们们想让VVisuual Webb Deevellopeer为我我们自动动创建一一个具有有一些默默认处理理的强类类型的视视图,所所以我们们勾选“创创建强类类型视图图”复选选框,在在模型类类下拉框框中选择择“Mooviee(MvvcMooviee.Moodells)”(如如果模型型类中不不存在这这个类,请请先点击击调试菜菜单下的的“生成成MvccMovvie”生生成该类类),在在支架模模板下拉拉框中选选择“LListt”,最最后勾选选“引用用脚本”复复选框,如如图5-2所示示。图5-2 添加强强类型视视图点点击添加加按钮,VVisuual Webb Deevellopeer自动动生成一

56、一个视图图,并且且自动在在视图文文件中添添加显示示电影清清单所需需要的代代码。这这里,我我们首先先用与前前面修改改HellloWWorlld控制制器所用用的视图图中的标标题同样样的方法法来修改改这个MMoviies控控制器所所用视图图中的标标题。代代码清单单5-22为修改改后的这这个视图图中的完完整代码码。在这这段代码码中,我我们将rreleeaseeDatte(发发行日期期)属性性的格式式化字符符串从原原来的“0:gg”修修改为“0:dd”(长长日期修修改为短短日期),将将Priice(票价)属性的的格式化化字符串串从原来来的“0:FF”修修改为“0:cc”(ffloaat类型型修改为为货币

57、类类型)。另另外,将将列表标标题中的的文字全全部修改改为中文文名称。代代码清单单5-22 Mooviees控制制器所用用视图中中的完整整代码modeel IIEnuumerrablleVViewwBagg.Tiitlee = 电影影清单;我我的电影影清单Htmml.AActiionLLinkk(追追加, CCreaate)电影名名称发行日日期种类票价foreeachh (vvar iteem iin MModeel) Httml.ActtionnLinnk(编辑, EEditt, neww id=iteem.IID ) |Httml.ActtionnLinnk(查看明明细, DDetaails

58、s, neww id=iteem.IID ) |Httml.ActtionnLinnk(删除, DDeleete, nnew iid=iitemm.IDD )ittem.TittleSttrinng.FFormmat(00:d, iteem.RReleeaseeDatte)ittem.GennreSttrinng.FFormmat(00:c22, ittem.Priice)5.2强强类型模模型与moddel关关键字在在本教程程的前文文中,我我们介绍绍了一个个控制器器可以使使用ViiewBBag对对象来将将数据或或对象传传递到视视图模板板中。VViewwBagg是一个个动态对对象,它它提供了了一

59、种便便利的,后后期绑定定的方法法来将信信息从控控制器传传递到视视图中。AASP.NETT MVVC也提提供了一一种利用用强类型型的方法法来将数数据或对对象传递递到视图图模板中中。这种种强类型型的方法法为你的的编码过过程提供供了很丰丰富的编编辑时的的智能输输入提示示信息与与非常好好的编译译时的检检查。接接下来我我们将结结合这种种方法与与我们的的Movviess控制器器(MoovieesCoontrrolller)与与视图模模板(IIndeex.ccshttml)一一起使用用。请请注意在在我们的的MovviessConntroolleer控制制器的IIndeex方法法中,我我们在调调用Viiew(

60、)方法法时传入入了一个个参数,代代码如下下所示。publiic cclasss MMoviiesCConttrolllerr : ConntroolleerMMoviieDBBConntexxt ddb = neew MMoviieDBBConntexxt();ppubllic ActtionnRessultt Inndexx()varr mooviees = frrom m iin ddb.MMoviieswheere m.RReleeaseeDatte neew DDateeTimme(119844, 66, 11)sellectt m;retturnn Viiew(movviess.To

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论