mvc零基础学习一

完整的ASP.NET MVC架构是基于Microsoft .NET Framework 3.5,另外还使用LINQ。

MODEL是什么?

1. MVC MODEL基本上就是一个C#或者VB.NET的类。

2. MODEL将同时被CONTROLLER和VIEW访问。

3. MODEL被CONTROLLER用来传输数据给到VIEW层。

4. VIEW层将使用MODEL来在页面上显示数据。

5.MODEL可以是具体的数据模型,实体类

VIEW是什么?

1. VIEW层主要都是一些cstml页面文件,他们不包括后台代码。

2. 在VIEW层中可以对所有的页面,进行HTML生成和格式化。

3. 可以在VIEW层中使用内联代码,进行动态页面开发。

4. VIEW层中的ASPX页面的请求,只能调用CONTROLLER中的方法。

CONTROLLER是什么?

1. Controller基本上都是一些继承了system.mvc.controller的C#或者VB.NET的类。

2. Controller是整个MVC架构的核心。

3. 在Controller类中的方法都是用来相应浏览器或者VIEW层的请求。

4. Controller将使用MODEL层来向VIEW层的页面传输数据。

5. Controoler使用VIEWDATA来传输任何数据给到VIEW层。

mvc零基础学习一_第1张图片

MVC文件结构和文件的命名规范。

 

MVC程序开发中,使用标准的文件目录结构和文件命名标准是非常重要的。

在程序的根目录,必须要有3个目录,分别是Model, View 和 Controller。

与普通的ASP.NET程序一样,这三个目录之外,根目录下面也必须有一个Global.asax文件和一个Web.Config文件。

 

Root [directory]

· Controller [directory]

o Controller CS files

· Models [directory]

o Model CS files

· Views [directory]

o View aspx/ascx files

· Global.asax

· Web.config

 以下这张图是老板的MVC,但是思想是一致的。

mvc零基础学习一_第2张图片

ASP.NET MVC的运行生命周期

下面是一个MVC架构程序如何执行浏览器的请求。

下面图形所涉及到的每一步执行的说明。

mvc零基础学习一_第3张图片

第一步,浏览器请求。

用户在浏览器中,输入一个网址:http://xxx.com/home/index/,这时候就产生一个浏览器请求。

第二步,Global.asax的作用,MVC路由。

这个网址将首先被Global.asax文件中的application_start()方法捕获并解释。从请求的网址中,将解释出控制器,方法,和ID。

所以http://xxx.com/home/index/中,我们将得到:

l 控制器:home

l 方法:index()

l ID:空

实例:Global.asax文件中的application_start()方法

mvc零基础学习一_第4张图片

RouteConfig.RegisterRoutes(RouteTable.Routes);方法即为解析网址中的控制器,方法,和ID。

mvc零基础学习一_第5张图片

第三步,Controller层与调用方法。

现在MVC将在Controller目录下查找home控制器的类。一个控制器类中包含不同的方法。

MVC默认查找在Controller目录下的名称为Home+Controller的类。

类中可以包含一个以上的方法,但是MVC只会请求从URL中解释出来的方法,在这里就是index()方法。

调用这个方法后,将返回纯字符串或者将被VIEW层展示的HTML代码。


注意下图中的写法是错误的,类中的方法名不可相同(即使返回值不同,参数不同也不行)这里只是为了方便显示示例

mvc零基础学习一_第6张图片

 public ActionResult Index() 方法返回一个具体的view对象。mvc会查找views文件夹下的home文件夹里的与controller里方法名一致的页面。

mvc零基础学习一_第7张图片

public string Index()方法返回一个string网页。

mvc零基础学习一_第8张图片

 public string Welcome(string name, int numTimes = 1),返回一个带参数的网页。(当controller里的函数没有对应的view时,访问它可以直接在地址栏输入它的路径, 默认的MVC映射为/[Controller]/[ActionName]/[Parameters] 

mvc零基础学习一_第9张图片

第四步,调用VIEW层。

调用VIEW将返回view()。调用VIEW层,将会访问view目录下指定的ASPX页面,并且生成将要返回给浏览器的HTML代码。

在这个例子中,控制器是home,方法是index()。所以调用view()将会从/views/home/index.aspx中返回一个HTML代码。

到这里,整个执行流程结束。这就是一个MVC架构如何工作的。

注意:

1.  Controllers与view的对应关系

Controllers的名字对应view视图中的文件夹的名字。

Controllers中的方法名对应相应的视图。

所以一个control可以对应多个视图。

2.views文件的命名规则

MVC默认文件名以下划线“_”开头的文件是母版页,布局页。不能用浏览器打开。

MVC默认起始模板是_ViewStart.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

表示母版页,布局页即为_Layout.cshtml。如果想做其他的母版页,只要创建类似 _Layout.cshtml 的文件即可。

_Layout.cshtml中的@RenderBody()部分是替换子页的地方。



你可能感兴趣的:(MVC学习)