1.2 认识ASP.NET MVC项目结构
1.开发环境
操作系统:xp、vista、windows 7、windows 8、windows server 2003|2008|2008R2|2012;
集成开发环境IDE:
- Vsiual Studio 2010,只提供ASP.NET MVC 2,若要使用MVC 3或4,需要安装一个独立的包。最简单的办法是使用微软的Web平台安装程序(Web Platform Installer)。
- VS2012,提供ASP.NET MVC 4。
- VS2013,提供ASP.NET MVC 5。
2.创建ASP.NET MVC默认项目
(1)“文件”->“新建”->“项目”
(2)在“新ASP.NET MVC 4项目”窗口中的“选择模板”列表中选择“Internet应用程序”模板。
(3)启动网站
3.认识默认项目模板
(1)6个预安装项目模板
- 空模板:不包含任何内容,只会创建一个空的ASP.NET MVC项目。
- 基本模板:大部分内容为空,只包含基本的文件夹、CSS以及ASP.NET MVC应用程序的基础结构。如果直接运行通过基本模板创建的应用程序将会出现错误提示消息,因为还没有设置应用程序启动项。基本模板是为具有ASP.NET MVC开发经验的人员设计的,基本模板可以按照他们的想法精确地设置和配置。
- Internet应用程序模板:通过该模板可以快速创建一个基本的ASP.NET MVC应用程序,程序创建之后可以立即运行,并能看到一些页面。Internet应用程序模板分为连个,前一个创建出的项目包含基于Web Forms验证机制(ASP.NET Membership)的账户系统,后一个创建出的项目包含Windows验证机制。
- 移动应用程序模板:该模板会创建一个适用于移动设备的ASP.NET MVC 4项目,并且包含基于Web Forms验证机制(ASP.NET Membership)的账户系统。
- Web API模板:该模板会创建一个ASP.NET Web API项目。
(2)项目结构
- App_Data目录:存放数据库、XML文件,或应用程序所需的其他数据。ASP.NET运行时能理解这种特殊目录,并会阻止用户直接访问其中的文件。只有应用程序才可以读写该目录。
- App_Start目录:保存项目配置相关的类。
- Content目录:包含需要随应用程序一起部署的各种非编码资源。这些资源包括图像和CSS样式表文件等。默认情况下,Content目录含有项目所使用的默认样式表Site.css,以及themes子目录,其中含有jQuery UI所使用的图像和CSS。
- Controllers目录:控制器是用Controllers目录中的类来表示的。默认情况下,该目录含有两个控制器,即HomeController(处理访问主页的请求)和AccountController(处理身份认证)。
- Filters目录:保存动作过滤器相关的类。
- Images目录:保存图像文件。
- Models目录:容纳表示应用程序核心概念的各种类,或者将数据约束成某种格式的类(视图模型View Model)。随着应用程序变大,你可能会决定将这些类移到一个单独的项目之中,但对于小型项目而言,把它们放在Models目录中是一种良好的开端。默认项目包含AccountModel.cs,包含与认证有关的类。
- Scripts目录:Scripts目录是存放由应用程序所使用的各种JavaScript文件的地方。默认项目模板在这个目录中包含了相当多的文件,包括流行的开源jQuery库和用于执行客户端验证的脚本。
- Views目录:含有用于渲染用户界面的模板。其中每一个模板都被表示成一个Razor视图(.cshtml文件),并被放在以负责渲染该视图的控制器为名称的子目录中。
- Global.asax文件:提供全局可用代码,包括应用程序的事件处理程序以及会话事件、方法和静态变量,也被称为应用程序文件。
- Web.config文件:含有网站正确运行所必须的配置细节,包括数据库连接字符串等。
(3)默认项目的控制器、动作、视图
a. 控制器类和动作方法
控制器是一个类,它继承自Controller基类。类中的动作对应URL请求。
这个控制器包含两个动作,Index和About,分别可以通过/Home/Index和/Home/About这样的URL进行访问。
(2) 路由
框架是如何知道将URL映射到一个特定的控制器动作的?答案就在“App_Start/RouteConfig.cs”文件中,该文件定义了将一个URL模式映射到控制器或动作的路由,其实现清单如下所示。
(3) 视图
在Views/Home子目录中,存在名为Index.cshtml、Contact.cshtml、About.cshtml的文件,其中Index.cshtml代码如下。
这个Index视图是C#代码和HTML标记的混合体。文件的顶部包含一个设置页面标题的代码块,然后在<h2/>元素中显示了一条消息。@ViewBag.Message的调用写出了在控制器中对ViewBag的Message属性所设置的内容。
@前缀表示HTML与代码之间的转换。
4.约定优于配置(Convention over Configuration)
它是一种软件设计范例,其主要目的是缩短开发人员在设计架构时用于决策的时间,减少由于软件设计过于富有弹性而导致的软件过于复杂的情况,通过约定让一个团队中的开发人员可以共享同一套设计架构。这样做可以减少思考时间,降低沟通成本,又不失软件的弹性。
(1)开发框架,分割成MVC三个部分;
(2)控制器,必须位于项目的Controllers目录下,以Controller结尾;
(3)视图,必须置于项目的Views目录下,Views目录的第一级目录名称必须与其对应的控制器的名称相同,Views目录的控制器名称目录下的文件名必须与其对应的Action的名称相同。
……
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步