【ASP.NET MVC】第一课:初识ASP.NET MVC,创建第一个ASP.NET MVC项目

知识点:理解ASP.NET MVC、创建一个ASP.NET MVC项目、理解ASP.NET MVC应用程序的结构

 

1、ASP.NET MVC简介

ASP.NET MVC是微软公司在原有的 ASP.NET  框架基础上提出的一个新的 MVC 框架。利用 ASP.NET MVC ,.NET 开发人员可以用 MVC 模式来构建 Web 应用,做到清晰的概念分离(UI 或试图与业务应用逻辑分离,应用逻辑和后端数据分离),同时还可以使用测试驱动开发。

1.1 什么是 MVC 

MVC 不是一种编程语言,严格来说也不是一种技术,而是一种开发架构,一种开发观念,或者说是一种程序设计模式。

MVC(Model-View-Controller ,模型—视图—控制器模式)用于表示一种软件架构模式。它把将软件开发过程大致切割成3个主要单元,分别为模型(Model)、试图(View)和控制器(Controller),简称MVC,其定义如下:

  • 模型(Model):一组类,描述了要处理的数据以及修改和操作数据的业务规则;
  • 视图(View):定义应用程序用户界面的显示方式;
  • 控制器(Controller):一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信。

 

1.2   MVC 的优点

ASP.NET MVC框架提供了一个可以代替 ASP.NETWebForm 的基于 MVC 设计模式的应用。

  • 通过把项目分成Model、View和Controller,使得复杂项目更加容易维护,减少项目之间的耦合
  • 自由操控HTML:在ASP.Net MVC中已经不使用控件,回归到网页基本元素HTML、CSS和javaScript,因此灵活性大幅增加。
  • 移动设备的支持:ASP.Net MVC4以后的版本针对移动网站增加了许多功能,对于变化更多的移动设备也能有更好的支持。
  • 网页流量降低:ViewState不再存在,并且内建CSS、JS捆绑与最小化机制与各种各样的Helper,可有效的降低数据传输量。
  • 使Web程序对单元测试的支持更加出色。
  • 在团队开发模式下表现更出众。

 

1.3  ASP.NET MVC 与 ASP.NET WebForm 的区别

(1)ASP.NET是创建 WEB 应用的框架

(2)MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC

(3)原来的ASP.NET称为 ASP.NET Webforms

推荐阅读:【使用ASP.NET开发Web项目】第一课——初识ASP.NET,创建第一个ASP.NET程序

asp.net框架

 

2、创建一个ASP.NET MVC项目(带模板)

ASP.NET MVC 程序开发过程

软件版本:Visual Studio 2012

第一步:打开VS2012软件,点击菜单栏【文件】—【新建】—【新建项目】,在弹出的新建项目窗体中,点击左侧模板 Visua C# 下面的 Web 选项,然后在中间部分,选择 .NET Framework 4 版本,点击选中【ASP.NET MVC 4 Web 应用程序】。名称、位置、解决方案名称,可以选择默认设置,也可以根据需要自行修改。最后点击【确定】按钮。

第二步:在弹出的【新 ASP.NET MVC 4 项目】窗体中,选择模板【Internet 应用程序】,视图引擎暂时使用默认的【Razor】,然后点击【确定】按钮

注意:此时等待系统自动创建即可,如果程序出现以下错误提示,点击【确定】即可。如果要解决此错误提示,解决办法:微软网站下载补丁文件,安装即可http://download.microsoft.com/download/A/0/2/A02C37E0-77F7-448A-BD5C-F66AB1F78DBC/VS11-KB3002339.exe。

第三步:创建完成后的默认效果,我们会看到有一个 HomeController.cs 文件默认打开。

第四步:启动测试,在浏览器中查看效果。点击工具单栏

,后面浏览器的名称会根据你自己电脑设置,有所不同。

注意:因为我们是用模板创建的,因此在预览的时候,可以看到这样的效果。

思考,我们可以自己修改这些页面内容吗?

第五步:结调试。可以直接关闭浏览器,也可以点击工具栏上的红色方块。

第六步:修改页面内容。打开左侧【解决方案资源管理器】,依次点开文件夹【Views】—【Home】—双击文件 Index.cshtml,即可打开该文件。

更改一行代码:(这里是新增加了一行代码)

再次预览效果:

项目分析:6个预安装项目模板介绍

  • 空模板:该模板不包含任何内容,只会创建一个空的 ASP.NET MVC 项目。
  • 基本模板:该模板大部分内容为空,但是项目中仍然包含基本的文件夹、CSS 以及出现错误提示消息,因为还没有设置应用程序启动项。基本模板是为具有 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 项目。

 

3、MVC 模式在 Web 开发中的应用

MVC 模式目前已经广泛地应用于 Web 程序设计中。在 ASP.NET MVC 中,MVC 的3个主要部分有着明确的分工。

模型(Models):也可称作数据模型,负责所有与数据有关的任务:

   ☆定义数据结构;

   ☆负责连接数据库;

   ☆从数据库中读写数据;

   ☆执行存储过程;

   ☆进行数据格式验证;

   ☆定义与验证业务逻辑规则;

   ☆对数据进行加工和处理。

所有与数据有关的任务,都应该在模型里完成或定义。在 ASP.NET MVC Web 应用开发中,我们可以将 Model 想象成一个命名空间(Namespace),它定义了一些类(Class)来负责所有与数据有关的工作,常见的相关技术包括 ADO.NET 、类型化数据集(Type Dataset)、实体数据模型(Entity Framework)、Linq to SQL 、数据访问层(Data Access Layer)和库模式(Repository Pattern)等。

视图(Views):负责所有与用户有关的接口简单来说就是输入与输出。输出工作指将数据显示在用户接口上,如 HTML ,输入工作则是将用户输入的数据传回服务器,具体任务包括:

   ☆从控制器(Controller)处取得数据,并将数据显示在用户接口上;

   ☆负责控制页面的版式、字体、颜色等各种显示方式;

   ☆参考模型(Model)定义的数据格式来定义数据显示方式;

   ☆在 Web 页面中送出数据到服务器;

   ☆决定数据的传递格式和传送方式;

   ☆完成基本的数据验证。

控制器(Controllers):其任务与明朝一样,就是掌控全局,所有与视图和模型无关的逻辑都由控制器定义。它负责的工作如下:

   ☆决定系统运作流程;

   ☆负责从模型(Model)中获取数据;

   ☆决定该显示哪个视图(View)。

3.1 创建一个ASP.NET MVC项目(空)

第一步:打开VS2012软件,点击菜单栏【文件】—【新建】—【新建项目】,在弹出的新建项目窗体中,点击左侧模板 Visua C# 下面的 Web 选项,然后在中间部分,选择 .NET Framework 4 版本,点击选中【ASP.NET MVC 4 Web 应用程序】。名称、位置、解决方案名称,可以选择默认设置,也可以根据需要自行修改。最后点击【确定】按钮。

第二步:在弹出的【新 ASP.NET MVC 4 项目】窗体中,选择模板【空】,视图引擎暂时使用默认的【Razor】,然后点击【确定】按钮。

第三步:添加一个控制器。在解决方案里,右键单击【Controllers】—【添加】—【控制器】

在弹出的【添加控制器】窗体中,设置控制器名称为“HomeController

添加完成后,会自动生成一个文件,HomeController.cs。

第四步:在解决方案里,右键单击【Views】—【添加】—【新建文件夹】—命名为【Home】。(文件夹的名称和控制器名称一样)

将新添加的文件夹,命名为“Home

第五步:右键单击新添加的文件夹【Home】—【添加】—【视图】

在弹出的【添加视图】窗体中,视图名称修改为“Index”,取消勾选“使用布局或母版页”,然后单击【确定】

添加完成后,会自动生成一个文件,Index.cshtml。

第六步:修改页面内容,这里是添加一行代码,欢迎语

第七步:测试运行

 

 

3.2 理解 MVC 的工作原理

在MVC中,客户端所请求的 URL 是被映射到相应的 Controller 去,然后由 Controller 来处理业务逻辑,或许要从 Model 中取数据,然后再由 Controller 选择合适的 View 返回给客户端。

 

运用断点测试,理解 MVC 工作原理

mvc运行原理

第一步:添加断点。双击打开 HomeController.cs 文件,在方法前面添加一个断点。(添加断点的方法:在该行断码左侧,单击一下鼠标左键,会出现一个红色圆点)

第二步:运行测试。单击工具栏

,然后点击“逐语句”工具即可查看测试。

 

 

4、ASP.NET MVC项目文件夹和核心文件的解释

在使用 Visual Studio 创建一个新的 ASP.NET MVC 应用程序之后,将自动向这个项目中添加一些目录和文件,如下图所示(此图来自带模板项目)。

ASP.NET MVC 项目默认含有5个顶级目录,每个目录都有特定的分工,如表所示。

        目  录

                                                   用    途

              备   注

Controller

该目录用于保存那些处理URL请求的Controller类

存放程序的核心文件

Models

该目录用于保存那些表示和操纵数据以及业务对象的类

Views

该目录用于保存那些负责呈现和输出结果(如HTML)的UI模板文件

App_Data

该目录用于存储想要读取/写入的数据文件

 

App_Start

该目录用于保存那些项目配置相关的类

 

 

4.1  App_Start 文件

App_Start 文件中包含MVC系统启动的相关类。

  • FilterConfig.cs :过滤器配置,这些过滤器(授权、异常、行为等)可以被应用到每个 Action 和 Controller 中去。(第四课会详细讲解)
  • RouteConfig.cs :配置MVC应用程序的系统路由路径。在 ASP.NET MVC 中通过配置 App_Start 文件夹下的 RouteConfig.cs 设置启动的默认页。
  • WebApiConfig.cs:用于注册Web API配置的各个方面。

效果图演示:通俗理解路由,是用于处理请求的 URL 模式,旅游时有多条线路可以到达目的地,网页可以通过多种URL访问,但是都要在规定范围内,如果超出规则,则无法到达目的地(网页)。

 

4.2  Web.config文件

  • 根目录下面的Web.config文件:作用于整个项目的配置
  • Views下面的Web.config文件:是整个视图的配置文件

 

4.3  Global.asax 文件

Global.asax 文件包含全局应用程序事件的事件处理程序。它响应应用程序级别和会话级别事件的代码。 运行时, Global.asax 将被编译成一个动态生成的 .NET Framework 类,该类是从HttpApplication基类派生的。 因此在global.asax中的代码可以访问 HttpApplication 类中所有的 public 或者 protected 的成员 global.asax 不被用户直接请求,但 global.asax 中的代码会被自动执行来响应特定的应用程序事件。 global.asax 是可选的,而且在一个web项目中是唯一的,它应该处于网站的根目录。

 

 

 

 

===========这里是结束分割线=============

 

原文地址:https://blog.csdn.net/dnruanjian/article/details/114526252

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)