zoukankan      html  css  js  c++  java
  • 【译】《Pro ASP.NET MVC4 4th Edition》第二章(一)

      本文地址:http://www.cnblogs.com/outtamyhead/archive/2013/03/19/2970172.html。转载需保留本地址!

    说在前面:

    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同时支持MVC3MVC4,你会在菜单中看到前一版本的模板。当在创建新项目时需要注意选择正确的那一个。

      新项目的名字叫做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。你可以看到我们安装了IEChrome

      

      在这本书中,我们将使用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.csC#代码文件并且自动打开它以便编辑。我们已经列出了Visual Studio自动为我们放到文件中的代码,清单2-1,你可以看到这个类叫做HomeController并且它继承自System.Web.Mvc.Controller

    清单2-1using 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-2using 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方法让它返回了字符串“HelloWorld”。重新运行程序,浏览器将会显示Index方法的结果,如图2-7

      

      理解路由

      与模型、视图、控制器,MVC应用程序使用ASP.NET路由机制,它决定URL如何映射到特定的控制器和动作。当Visual Studio创建了MVC项目,它添加了一些默认的路由来供我们使用。下面的URL你可以任意请求,并且它们会被直接引向HomeController中的Index动作:

      /

      /Home

      /Home/Index

       所以,当浏览器请求http://yousite/或者http://yoursite/Home它都会返回HomeControllerIndex方法的输出结果。你可以自己在浏览器中尝试一下。这时候,地址可能是http://localhost:61982,除了端口可能不同外,如果你后面加上了/Home或者/Home/Index,你可以看到同样的结果。

      这是一个很好的受益于MVC约定的示例。在这个示例中,这个约定是:我们有一个名为HomeController的控制器并且它是我们MVC应用程序的起点。假设我们遵循使用默认路由这一约定,当我们按照这个约定来做,我们将获得前面列表中URL的支持。如果我们没有按照这个约定来做,我们需要修改路由来指向控制器。像在这个示例中,默认的路由配置是对我们很有用的。

       提示:你可以通过Global.asax.cs文件来编辑你的路由配置。在第7章,你将自定义路由,在第1314章你会学到关于路由的更多知识。




    文章作者:禁止吸烟

    道本无话可说,皆当全力以赴。

    博客地址:http://www.cnblogs.com/outtamyhead/

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/outtamyhead/p/2970172.html
Copyright © 2011-2022 走看看