知识点2-2:认识默认项目模板
1.默认项目的结构
(1) App_Data目录
存放数据库、XML文件,或应用程序所需的其他数据。ASP.NET运行时能理解这种特殊目录,并会阻止用户直接访问其中的文件。只有应用程序才可以读写该目录。
(2) Content目录
包含需要随应用程序一起部署的各种非编码资源。这些资源包括图像和CSS样式表文件等。默认情况下,Content目录含有项目所使用的默认样式表Site.css,以及themes子目录,其中含有jQuery UI所使用的图像和CSS。
(3) Controllers目录
控制器是用Controllers目录中的类来表示的。默认情况下,该目录含有两个控制器,即HomeController(处理访问主页的请求)和AccountController(处理身份认证)。
(4) Models目录
容纳表示应用程序核心概念的各种类,或者将数据约束成某种格式的类(视图模型View Model)。随着应用程序变大,你可能会决定将这些类移到一个单独的项目之中,但对于小型项目而言,把它们放在Models目录中是一种良好的开端。默认项目包含AccountModel.cs,包含与认证有关的类。
(5) Scripts目录
Scripts目录是存放由应用程序所使用的各种JavaScript文件的地方。默认项目模板在这个目录中包含了相当多的文件,包括流行的开源jQuery库和用于执行客户端验证的脚本。
(6) Views目录
含有用于渲染用户界面的模板。其中每一个模板都被表示成一个Razor视图(.cshtml文件),并被放在以负责渲染该视图的控制器为名称的子目录中。
(7) Global.asax
包含应用程序第一次启动时需要运行的初始化代码,如注册路由的代码。
(8) Web.config
含有ASP.NET MVC正确运行所必须的配置细节。
2.默认项目的控制器、动作、视图
控制器的作用相当于一个协调程序,它可以接受输入(通过各种来源,如表单数据或URL中的信息),并且将页面的渲染委托给了视图。
(1) 控制器类和动作方法
控制器是一个类,它继承自Controller基类。类中的动作对应URL请求。
这个控制器包含两个动作,Index和About,分别可以通过/Home/Index和/Home/About这样的URL进行访问。
(2) 路由
框架是如何知道将URL映射到一个特定的控制器动作的?答案就在Global.asax文件的RegisterRoutes方法中。该方法定义了将一个URL模式映射到控制器或动作的路由,其实现清单如下所示。
(3) 视图
在Views/Home子目录中,存在名为Index.cshtml的文件,代码如下。
这个Index视图是C#代码和HTML标记的混合体。文件的顶部包含一个设置页面标题的代码块,然后在<h2/>元素中显示了一条消息。@ViewBag.Message的调用写出了在控制器中对ViewBag的Message属性所设置的内容。
@前缀表示HTML与代码之间的转换。