经典ASP.NET MVC3.0入门详解

注:由于本文原在word文档里编写,写本文章时运用了大量截图,直接复制到博客里,没有显示图片,

图片只是一些简单的运行结果截图,不影响大家学习

 

p.Net MVC已经到第三版了,相信大家也都熟悉了,我也不再重复相关概念性的东西了。但是大家一定要了解,Asp.Net MVC是微软的一个开源的UI层框架,是AspNet的另外一种开发模式。好废话不多说,那我们开始进入Asp.Net MVC3 的学习中来,工欲善其事,必先利其器!所以我们必须搭建好自己的开发环境才能为我们下一步的学习和开发提供更好的支持。

那你的机器的必备条件是:

1)VS2010(当然你非要使用VS2008那我也不能说什么了)

2)SqlServer 2000/2005/2008

3)Asp.Net MVC3安装包(应该是需要VS2010SP1)

 

下面提供一些URL链接方便大家下载学习:

1)Asp.Net MVC3的官网:http://www.asp.net/mvc/mvc3 

如下图所示:

这个大家在安装过程中可能时间会非常长(>=20分钟),大家忍耐一下!

2)安装Asp.Net MVC3安装包

http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3 

3)Asp.Net MVC3源码开源地址:

http://aspnet.codeplex.com/releases/view/58781 

如下图所示:

第二节:第一个Asp.Net MVC3项目

1)创建项目:

2)选择项目的默认视图引擎

我们选择一个Empty模板,然后选择Razor视图引擎(Asp.Net MVC3中提供的新的视图引擎)选择HTML5标记支持打上勾(这块我也不了解,呵呵,希望做过这块研究的高手跟我分享一下!)。

3)创建后的项目:

 

Asp.Net MVC3貌似跟之前的版本创建的项目模板没什么大的不同,文件夹也基本相似。当然我们看到文件夹内的Jquery的包更新到了1.5.1 。后面的文章中会对每个文件夹都做相关的介绍。在此就不多��嗦了。

4)添加代码,跑起来我们的第一个Demo

首先:在Controller文件夹上右击,选择添加菜单,然后选择Controller,如下图所示:

然后弹出对话框,将Controller命名为HomeController,注意后面的Controller不要去掉,不然它就不会被识别为Controller了,最后点击添加。如下图所示:

设计器自动为我们生成代码如下:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/

public ActionResult Index()
{
return View();
}

}
}

下一步我们在Action上添加我们需要的视图,如下所示:

5)在前台页面添加我们自己的Html标签

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

<h1>Hello! It's my first Asp.Net MVC Web!</h1>

注意:红色为我们自己添加的部分

6)最终结果:

在上一篇文章Asp.Net MVC3 简单教程(一)环境准备 中我简单介绍了Asp.Net MVC3项目的安装和第一个Asp.Net MVC3项目的基本情况。没有详细介绍项目中各个文件夹的作用,以及创建的第一个页面是怎样运行起来的?还有好多的疑问,那在这篇文章中我们将详细介绍项目中各个文件夹的作用,并真的第一个项目我们简要介绍一下Asp.Net MVC的URL驱动的是怎么回事。 

第一节:Asp.Net MVC3项目介绍

让我们先看一下,一个普通的Asp.Net MVC3项目的样例,如下图所示 

   

跟WebFrom还是有区别的,如果你已经了解Asp.Net MVC2的话,那就感觉异常熟悉了!但还是有些区别的。不管怎样我们都一一介绍一下。 

很有意思的事情是即使我们创建一个空的MVC项目,VS也自动帮我们创建以上图所示的目录,这是为何呢?这是由于MVC秉承了“约定大于配置”的思想,我们在使用Asp.Net MVC3开发项目时也要注意,一定要按照它的约定办事,比如:Controller在返回Action后需要一个View进行展示(当然是调用了View()方法时),这时候Asp.Net MVC回到Views文件夹下找到Controller名字相同的文件夹下面找到具体的页面进行渲染,当然如果找不到会去Shared文件夹下去找。看下表所示的就是Asp.Net MVC3中各个文件夹的作用。 

文件夹

作用

/Controllers

存放控制器类【职责是:处理用户的请求,指挥具体的页面进行渲染交给客户端】

/Views

存放各个控制器对应的视图文件,如果是Razor引擎的话那后缀是cshtml.如果使用的WebFrom的视图引擎的话,那还是Aspx后缀。

/Content

主要存放照片、CSS、Flash等文件

/Scripts

主要存放脚本文件【微软默认给我们提供了JQuery1.5.1的包,看来JQuery已经成为默认的工业标准了!我们没有退路了,呵呵,当然我个人也非常喜欢JQuery】

/Models

主要存放ViewModel类【当然这个不是严格这样要求的,而是推荐你这么做。】

其他的几个比较有意思的文件:

一个是Web.Config,另外一个是Global.asax虽然我们大家都非常熟悉,但是跟之前我们WebFrom还是有很多的区别的。WebConfig文件中,配置了启用客户端脚本验证、配置了System.Web.Routing、System.Web.Mvc等组件。而Global.asax则在应用启动的时候注册了全局的Area【区域,后面会相信讲解】、全局Filter、路由等。

第二节:Asp.Net MVC的请求处理模型

在上一篇中我们也简单做了个小例子,直接添加一个Controller,然后在Action上添加一个View,直接运行,然后就在我们面前呈现了一个普通的Html页面。那我们详细解释一下这种开发方式或者说开发模型。在讲解之前我们先认识几个概念:

Controller:控制器。在Contrller文件夹添加的以Controller结尾的类就是控制器,它的每个方法就是一个Action。它的职责是从Model中获取数据,并将数据交给View,它是个指挥家的角色,它并不控制View的显示逻辑,只是将Model的数据交给View,而具体的怎样展示数据那是View的职责,所以Controller跟View是一个弱耦合的状态,而且Controller可以任意指定具体的View进行渲染。所以达到了UI层的代码和实体良好的分离。

View:视图.负责数据的展示,当然这个视图代码的编写应该是更接近纯净的Html的,而View层代码的书写又直接跟视图引擎解析的规则有关,所以Razor的语法跟webFrom视图引擎的语法截然不同。而笔者更倾向更喜欢Razor语法的简洁、方便。

Model:很多人把Model理解成领域模型,而MVC本身是一个表现模式,它是更倾向于UI层的一个框架,所以一般我们指定的Model呢在使用时一般作为ViewModel来用,但是总的MVC的思想呢,Model还是领域相关的东西吧。

经过MVC3个模块的了解分析,我们大体也知道了Asp.Net MVC的一些基本的概念。接下来我们分析一个完整的Http的处理过程。看下面一个图:

 

客户端发送一个Http请求,首先被我们的IIS捕获到,然后根据Url请求的格式,最终交给我们的Route组件,然后它负责解析出我们的Url具体请求的是哪个Controller下的哪个Action。然后MVC经过处理调用我们的Action执行。在Action中我们一般会从业务的Fa

分享至
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:未分类┆阅读( 0)┆评论( 0) ┆ 返回博主首页┆ 返回博客首页
上一篇 mvc与三层结构终极区别 下一篇 LINQ标准查询操作符详解

你可能感兴趣的:(.net,asp.net)