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. .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI

    作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...

  4. AngularJS2 + ASP.NET MVC项目

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. [bzoj1051] [HAOI2006]受欢迎的牛 (Tarjan+缩点)

    强连通图,缩点 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受 ...

  2. 我的android学习经历23

    学习fragment时遇到的问题 这几天学习fragment静态加载时遇到这样的问题: java.lang.RuntimeException: Unable to start activity Com ...

  3. BZOJ 2433 智能车比赛(计算几何+最短路)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2433 题意:若干个矩形排成一排(同一个x之上最多有一个矩形),矩形i和i+1相邻.给定两 ...

  4. C#处理控制台关闭事件

    应用场景 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭.如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理. 处理方法 在.ne ...

  5. SQL将金额转换为汉子

    -- ============================================= -- Author: 苟安廷 -- Create date: 2008-8-13 -- Descrip ...

  6. CG基础教程-陈惟老师十二讲笔记

    转自 麽洋TinyOcean:http://www.douban.com/people/Tinyocean/notes?start=50&type=note 因为看了陈惟十二讲视频没有课件,边 ...

  7. CUBRID学习笔记 29 web管理中文语言文件 CUBRID教程

    网站的中文语言文件部分 http://files.cnblogs.com/files/wang2650/Messages.7z

  8. 指令随笔之:tail、cat、scp、&、&&、;、|、>、>>

    tail(中文意思是跟踪)   tail默认只看文件的最后10行内容,cat则一次显示全部内容 ping 192.168.120.204 > zyx.log &    #  &表 ...

  9. 使用Invoke、委托函数

    //Invoke(new MethodInvoker(delegate() //{ // DataBind(); //}));

  10. hdu 4223 Dynamic Programming?

    Dynamic Programming? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...