本文地址:。转载需保留本地址!
说在前面:
1、由于是头次翻译整本书籍,所以错误难免,希望大家都提出来,翻译的不好还望大家少拍砖多鼓励。
2、该系列没有按照原文直译,而是加入了我的一些言语在里面(在没有改变原意的情况下),所以大家在看的时候希望有所对照。
3、该系列每周出一或二篇博客,因为我最近很忙,一直在加班,很累的说。
4、该系列不提供原版文字,希望看原版的可以自行下载Pdf。
5、该系列省去了前面的废话,单刀直入,讲主体内容。
第二章:第一个ASP.NET MVC4程序(上)
引文:
领会一个开发框架最好的方式就是找到合适的框架并使用它。在这一章中,将带你建立一个基于ASP.NET MVC4的简单数据实体应用程序。我们将一步一步的告诉你ASP.NET MVC应用程序是怎么建立起来的。为了尽量简单化,我们将跳过一些技术细节;但是不用担心,如果你是个初学者,你会发现很多有趣的东西。在我们不解释地使用某些东西的地方,我们提供了参考章节,你可以找到所有的细节问题。
唯一的准备工作就是是需要你安装Visual Studio 2012,它包含了你需要的所有东西,包括一个内置的应用程序服务器(IIS Express)用于运行和调试你的MVC应用程序,一个免费的SQl Server开发databasedriven应用程序,单元测试工具,当然还有代码编辑器和调试器。
Visual Studio 2012有几种不同的版本,我们将使用免费的Visual Studio 2012 For Web这一版。在Visual Studio的付费版本中微软添加了一些比较实用的东西,但是在这本书里我们不需要并且本书所有的示例都是在Express版本上开发的。如果你需要其他版本,可以在http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products下载。这里有好几个版本的Visual Studio Express,每一个都有不同的开发用途,一定要确保你下载的是支持MVC应用程序的Web版。
一旦你已经安装了Visual Studio,那就算是准备好了。微软确实提高了Visual Studio Express的功能范围,在这本书里你没有其他需要注意的问题了。
提示:在这本书里我们使用了Windows 8,但是你可以在windows的早期版本中使用Visual Studio 2012 和开发MVC4应用程序。
创建一个ASP.NET MVC项目
我们将在Visual Studio中创建一个新的MVC项目。从【File】菜单中选择【New】--【Project】,打开【New Project】对话框。如果你在【Visual C#】节下选择【Web】,你会看见一个叫做【ASP.NET MVC 4 Web Application】的项目类型。选择这个类型,如2-1所示。
小心:Visual Studio 2012同时支持MVC3和MVC4,你会在菜单中看到前一版本的模板。当在创建新项目时需要注意选择正确的那一个。
新项目的名字叫做ParyInvites,然后点击【OK】按钮继续。你会看到另外一个对话框,如图2-2,询问你在MVC项目模板中选择哪一个。
不同的MVC项目模板创建的项目会在基础支持上有所不同,像验证,导航,样式。在这一节中,我们为了尽量保持简单,选择【Empty】,这样将创建一个只有基本文件夹的项目,但是不会包含任何MVC程序需要的文件。在这一节里,我们将添加我们需要的文件并解释我们做的每一步。
点击【OK】按钮来完成创建。
备注:在2-2中,你会看见一个下拉菜单让我们选择不同的视图引擎,在MVC3中,微软介绍了一种新的并且高效的视图引擎:Razor,在这本书里我们将使用Razor引擎。我们希望你也是一样。但是如果你希望使用ASP.NET引擎(也被称为ASPX引擎),这就是你的选择。我们会解释Razor和视图引擎在第五和第十八章。
当项目创建完成,你会在【Solution Explorer】窗口看见一些文件和文件夹。这是MVC4项目中默认的结构。现在你可以试着运行一下应用程序,通过【Debug】--【Start Debugging】(如果它提示你启动调试,那么点击【OK】就可以了)。你可以在2-3中看到效果。因为我们启动的是一个空项目,应用程序中没有包含任何内容,所以出现了404错误。
调试完成之后,记得关闭显示错误页面的浏览器来停止调试或者在Visual Studio中通过【Debug】--【Stop Debugging】来停止调试。
Visual Studio通过浏览器来展示我们的项目,你可以通过工具栏来更改我们要使用的浏览器,如图2-4。你可以看到我们安装了IE和Chrome。
在这本书中,我们将使用IE10。所有的现在的浏览器都是不错的,但是我们还会坚持使用IE因为我们知道它是被广泛安装的。
添加第一个控制器
在MVC架构中,由控制器处理传入的请求。在ASP.NET MVC中,控制器只是简单的C#类(通常是继承System.Web.Mvc.Controller-框架的内置控制器基类)。在控制器中每一个公共方法都被称为Action(动作),意味着你可以通过某个URL从Web来调用它来执行一些动作。在MVC约定中,通常将控制器类放在【Controllers】文件夹中,这个文件夹会在我们创建项目时由Visual Studio来创建。你不必遵循这些MVC约定,但是我们希望你能遵循这些约定,因为它能帮助你更好的理解本书中的示例。
要在我们的项目中添加控制器,只需要在【Controllers】文件夹上右键,选择【Add】--【Controller】,如图2-5。
当【Add Controller】对话框出现后,把名称设置为HomeController,如图2-6.这还有一个约定:我们提供给控制器的名称应该是具有描述性的并以Controller结尾。
在对话框中的【Scaffolding options】,允许我们通过模板来创建控制器。我们不需要这个功能,所以只要选择【Empty MVC controller】就可以了,如上图所示。
点击【Add】按钮来完成创建。Visual Studio将会在【Controllers】文件夹中创建一个新的名叫HomeController.cs的C#代码文件并且自动打开它以便编辑。我们已经列出了Visual Studio自动为我们放到文件中的代码,清单2-1,你可以看到这个类叫做HomeController并且它继承自System.Web.Mvc.Controller。
清单2-1:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace PartyInvites.Controllers {public class HomeController : Controller {public ActionResult Index() {return View();}}}
一个很好的方法去理解MVC就是对控制器类做一些小小的改变。编辑HomeController.cs使它和清单2-2相匹配。我们对修改的地方做了高亮处理,使它更显而易见。
清单2-2:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace PartyInvites.Controllers {public class HomeController : Controller {public string Index() {return "Hello World";}}}
我们没有创建任何叫人兴奋的东西,但是它却是一个非常好的示例。我们修改了Index方法让它返回了字符串“Hello,World”。重新运行程序,浏览器将会显示Index方法的结果,如图2-7。
理解路由
与模型、视图、控制器,MVC应用程序使用ASP.NET路由机制,它决定URL如何映射到特定的控制器和动作。当Visual Studio创建了MVC项目,它添加了一些默认的路由来供我们使用。下面的URL你可以任意请求,并且它们会被直接引向HomeController中的Index动作:
/
/Home
/Home/Index
所以,当浏览器请求,它都会返回HomeController中Index方法的输出结果。你可以自己在浏览器中尝试一下。这时候,地址可能是http://localhost:61982,除了端口可能不同外,如果你后面加上了/Home或者/Home/Index,你可以看到同样的结果。
这是一个很好的受益于MVC约定的示例。在这个示例中,这个约定是:我们有一个名为HomeController的控制器并且它是我们MVC应用程序的起点。假设我们遵循使用默认路由这一约定,当我们按照这个约定来做,我们将获得前面列表中URL的支持。如果我们没有按照这个约定来做,我们需要修改路由来指向控制器。像在这个示例中,默认的路由配置是对我们很有用的。
提示:你可以通过Global.asax.cs文件来编辑你的路由配置。在第7章,你将自定义路由,在第13和14章你会学到关于路由的更多知识。