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的名称相同。

……

1.2 认识ASP.NET MVC项目结构的更多相关文章

  1. ASP.NET MVC项目

    ASP.NET MVC项目里创建一个aspx视图 先从控制器里添加视图 视图引擎选"ASPX(C#)",使用布局或模板页不要选. 在Views\EAV目录里,生成的aspx是个单独 ...

  2. 基于BUI开发Asp.net MVC项目

    因工作性质参于并开发过一些Web应用程序,前端项目框架也用了不少,比如MiniUI.ExtJS.以及定制的项目前端框架.无意中看到BUI前端框架,第一眼就被它的优雅布局所吸引.简洁的项目门户Banne ...

  3. AngularJS2 + ASP.NET MVC项目

    环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问 ...

  4. 远程调试 ASP.NET MVC 项目

    Visual Studio 支持从一台计算机到另一台设备的远程调试.进行远程调试时,主机可以是任何支持 Visual Studio 的平台.远程设备可以是 x86.x64 或 ARM 平台. 本文将指 ...

  5. 习题-任务2初始ASP.NET MVC项目开发

    一.选择题 1.在ASP.NET MVC项目的RouteConfig.cs文件中,(    )方法注册了默认的路由配置. A.RegisterMap    B.RegisterRoutes    C. ...

  6. Asp.net mvc项目架构分享系列之架构概览

    Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...

  7. 2.2 利用项目模板创建ASP.NET MVC项目

    1.启动VS2012,点击“文件|新建|项目”. 2.在新建项目的窗口中,选择ASP.NET MVC 4应用程序. 3.在新ASP.NET MVC 4项目窗口中的“选择模板”列表中选择“基本”模板,在 ...

  8. 在 ASP.NET MVC 项目中使用 WebForm、 HTML

    原文地址:http://www.cnblogs.com/snowdream/archive/2009/04/17/winforms-in-mvc.html ASP.NET MVC和WebForm各有各 ...

  9. ASP.NET MVC 项目分离

    ASP.NET MVC 项目分离 说明: ZRT.Web 是前台网站,目录[D:\ZRT.Web\] ZRT.Admin 是后台管理,目录[D:\ZRT.Web\Applications\Admin\ ...

随机推荐

  1. Java线程池解析

    Java的一大优势是能完成多线程任务,对线程的封装和调度非常好,那么它又是如何实现的呢? jdk的包下和线程相关类的类图. 从上面可以看出Java的线程池主的实现类主要有两个类ThreadPoolEx ...

  2. 推荐一款Mac上好用的Markdown编辑器

    [TOC] 推荐一款Mac上好用的Markdown编辑器 正文 我算是一位Evernote的重度用户吧.之前也尝试过为知笔记,有道云笔记,微软的onenote,最后还是觉的Evernote.因为我喜欢 ...

  3. 分布式ID生成器 zz

    简介 这个是根据twitter的snowflake来写的.这里有中文的介绍. 如上图所示,一个64位ID,除了最左边的符号位不用(固定为0,以保证生成的ID都是正数),还剩余63位可用. 下面的代码与 ...

  4. 视图(View)与部分视图(Partial View)之间数据传递

    写ASP.NET MVC程序,我们经常需要把数据从视图(View)传递至部分视图(Partial View) 或者相反. 今天Insus.NET使用 ControllerBase.TempData 进 ...

  5. 通过Nginx,Tomcat访问日志(access log)记录请求耗时

    一.Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间 nginx.conf使用配置方式: log_format main '$remo ...

  6. wpf 旋转效果

    <Grid> <Grid.Triggers> <EventTrigger RoutedEvent="Page.Loaded"> <Begi ...

  7. video 测试

    https://segmentfault.com/a/1190000002401961  音量调节https://www.google.com/?gws_rd=ssl#newwindow=1& ...

  8. android讯飞语音开发常遇到的问题

    场景:android项目中共使用了3个语音组件:在线语音听写.离线语音合成.离线语音识别 11208:遇到这个错误,授权应用失败,先检查装机量(3台测试权限),以及appid的申请时间(35天期限), ...

  9. 转】腾讯云CentOS 6.6安装 Nginx

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/5290155.html 感谢! 一.下载Nginx 从Nginx的官网(http://nginx.org/en/d ...

  10. Synchronization in Delphi TThread class : Synchronize, Queue

    http://embarcadero.newsgroups.archived.at/public.delphi.rtl/201112/1112035763.html > Hi,>> ...